繁体   English   中英

“moduleNotFoundError:没有名为'pyautogui'的模块”仅在pyinstaller exe中

[英]"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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM