[英]"moduleNotFoundError: No module named 'pyautogui'" only in pyinstaller exe
我正在制作一个程序,使用 python 和 pyautogui 来检测“wocabee”应用程序中按钮 colors 的变化。 该代码在 VS 代码中完美运行,但是一旦我使用 pyinstaller 将其导出到 exe,它就会给我一个错误:
.
我试图从我在 pyautogui 上观看的教程中导出类似的代码,就像我的代码一样,在我导出之前它可以完美运行。
代码:
from logging.config import listen
from pyautogui import *
import pyautogui
import time
import keyboard
import win32api, win32con
import tkinter as tk
root = tk.Tk()
canvas1 = tk.Canvas(root, width = 200, height = 100)
canvas1.pack()
label1 = tk.Label(root, text = "Can't do this one, sorry")
print(pyautogui.pixel(1100, 400))
print(pyautogui.pixel(1100, 540))
print(pyautogui.pixel(1100, 610))
print(pyautogui.pixel(1100, 670))
def click(x, y):
win32api.SetCursorPos((x, y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
time.sleep(0.01)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
def pickOne():
click(710, 200)
if pyautogui.pixel(1150, 540)[0] > 200:
click(1150, 540)
elif pyautogui.pixel(1150, 610)[0] > 200:
click(1150, 540)
elif pyautogui.pixel(1150, 670)[0] > 200:
click(1150, 540)
time.sleep(10)
def pairs():
click(710, 200)
if pyautogui.pixel(1100, 400)[0] > 200:
click(1100, 400)
elif pyautogui.pixel(1100, 460)[0] > 200:
click(1100, 460)
elif pyautogui.pixel(1100, 540)[0] > 200:
click(1100, 540)
elif pyautogui.pixel(1100, 620)[0] > 200:
click(1100, 620)
elif pyautogui.pixel(1100, 700)[0] > 200:
click(1100, 700)
elif pyautogui.pixel(1100, 770)[0] > 200:
click(1100, 770)
time.sleep(10)
def completeWord():
canvas1.create_window(100, 50, window=label1)
def listenAndWrite():
click(710, 200)
time.sleep(0.5)
click(1100, 670)
time.sleep(10)
def translate():
click(710, 200)
time.sleep(0.5)
click(1100, 610)
time.sleep(10)
def pictureReader():
click(710, 200)
time.sleep(0.5)
click(1100, 760)
time.sleep(10)
def picturePicker():
canvas1.create_window(100, 50, window=label1)
while keyboard.is_pressed('q') == False:
while pyautogui.pixel(1400, 270)[0]>100:
if pyautogui.pixel(1100, 400)[0] == 40 and pyautogui.pixel(1100, 610)[0] == 0 and pyautogui.pixel(1100, 670)[0] == 0:
pickOne()
elif pyautogui.pixel(1100, 400)[0] == 40 and pyautogui.pixel(1100, 460)[0] == 40 and pyautogui.pixel(1100, 540)[0] == 40 and pyautogui.pixel(1100, 620)[0] == 0 and pyautogui.pixel(1100, 700)[0] == 0 and pyautogui.pixel(1100, 770)[0] == 0:
pairs()
elif pyautogui.pixel(940, 440)[0] == 255 and pyautogui.pixel(1100, 520)[0] == 255 and pyautogui.pixel(1100, 750)[0] == 19:
listenAndWrite()
#translate function
elif pyautogui.pixel(1100, 400)[0] == 40 and pyautogui.pixel(940, 450)[0] == 255 and pyautogui.pixel(1100, 530)[0] == 255:
translate()
elif pyautogui.pixel(1100, 690)[0] == 250 and pyautogui.pixel(1100, 760)[0] == 2:
picturePicker()
root.mainloop()
有人可以帮我弄清楚吗?
我想通了。 问题是我没有用 pyinstaller 正确导入库,所以它给了我这个错误。 通过将此添加到 pyinstaller 命令,我已成功修复它:
--hidden-import=pyautogui
我想你使用 Pycharm 或者你没有安装使用过的模块。 所以你需要在系统运行时使用 pip 安装使用的模块
python -m pip install your used module
对所有使用的模块执行相同的操作,然后运行 Pyinstaller 来转换您的脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.