sydomain

思绪来的快,去的也快,偶尔在这里停留。

python pyinstaller pyautogui 打包报错,提示没有后找到pyautogui模块

前言

python项目使用了pyautogui库,使用pyinstaller打包后运行,提示没有找到pyautogui模块。


一、前因

在一个网页上下载文件,需要人工依次点击进入预览界面后再次点击【下载】按钮。当需要下载的文件过多时,整个过程将非常漫长而枯燥,所以使用pyautogui库来模拟人工点击操作,并且还使用tkinter写了一个简单的操作界面。但是使用pyinstaller打包这个项目之后,运行却报错了。

报错信息如下:


Traceback (most recent call last):

  File "main.py", line 3, in <module>

ModuleNotFoundError: No module named 'pyautogui'

二、分析解决

根据报错信息分析:在脚本中导入的pyautogui模块未找到。

导致这个错误的原因可能是系统中没有安装pyautogui模块,或者在打包过程中没有正确地包含该模块。

检查是否安装了pyautogui模块:


pip show pyautogui



没有安装的话可以使用以下命令安装:


pip install pyautogui


从检查结果可以看到pyautogui模块安装是没有问题的。

再次打包,仍然会遇到该错误。

这时候就需要检查导入语句是否正确。确保在脚本的开头使用import pyautogui语句导入该模块。

确认后发现导入也没有问题。

在PyInstaller的打包命令中添加--hidden-import=pyautogui参数后再次测试:


pyinstaller -F -w --hidden-import=pyautogui main.py


测试发现仍然会报错。

在此之后更换了打包工具,使用cx_Freeze打包后运行,发现仍然提示pyautogui不存在,此时可以排除是打包工具的问题。

突然想起是不是默认安装的pyautogui版本不兼容,考虑到这个问题后,使用以下命令重新安装低版本的pyautogui模块:


pip install pyautogui==<version>


将<version>替换为对应版本号即可,我这里使用的是0.9.30版本



再次重新使用pyinstaller打包:


pyinstaller -F -w --hidden-import=pyautogui main.py



Powered By sydomain

Copyright Your WebSite.Some Rights Reserved.