使用auto_py_to_exe打包pygame项目报No module named pygame如何解决
auto_py_to_exe打包pygame脚本找不到pygame模块报错解决方法
报错信息:
Traceback (most recent call last): File "drawrect.py", line 1, in <module> ModuleNotFoundError: No module named 'pygame'报错截图:
该报错本质是打包工具运行时的Python环境未检测到pygame依赖,按以下步骤逐一排查即可解决:
步骤1:确认环境依赖一致
- 打开你启动auto_py_to_exe的终端窗口,执行
pip list命令,检查返回的依赖列表中是否存在pygame。 - 如果不存在,直接在当前终端执行
pip install pygame安装依赖后,重新启动auto_py_to_exe打包即可。
步骤2:手动指定隐藏导入
如果确认当前环境已经安装pygame但仍报错,属于auto_py_to_exe未自动识别pygame依赖,手动添加隐藏导入配置即可:
- 打开auto_py_to_exe的配置界面,找到「高级」分类下的「--hidden-import 额外导入的模块」输入栏
- 在输入栏中填入
pygame,保持其他配置不变重新执行打包
步骤3:命令行直接打包(备选方案)
auto_py_to_exe本质是pyinstaller的GUI封装,GUI配置出错时可直接用pyinstaller命令打包:
- 打开脚本所在的目录,在地址栏输入
cmd回车启动当前目录的终端 - 执行命令:
pyinstaller -F -w --hidden-import pygame drawrect.py - 打包完成后,可执行文件会生成在当前目录下的dist文件夹中
额外注意
你提供的测试代码存在逻辑顺序错误,pygame.init()需要放在所有pygame接口调用之前,否则运行时可能触发异常,修正后的代码示例如下:
import pygame # 先初始化pygame pygame.init() Rect = pygame.Rect(0, 0, 150, 150) Rect.center = (240, 240) white = (255, 255, 255) surface = pygame.display.set_mode((480, 480)) while True: surface.fill((0, 0, 0)) pygame.draw.rect(surface, white, Rect) pygame.display.update()
内容的提问来源于stack exchange,提问作者SquidR
相关产品推荐
相关产品推荐


