欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用pyinstaller打包python程序为exe却不能执行的解决办法

程序员文章站 2024-02-03 22:09:16
...

“温故而知新”,故写此学习笔记,以待需要时查看。如若此文有助于解决你的问题,自然最好不过了。

问题描述:
在学习《python编程:从入门到实践》的过程中,将alien_invasion(外星人入侵)游戏项目使用pyinstaller打包时,虽然打包成功。但是alien_invasion.exe可执行exe出现闪退。

解决方案:
1.在命令行中,输入cd desktop\alien_invasion跳转到项目文件夹alien_invasion,然后输入pyinstaller -F alien_invasion.py按Enter键,如下图:
使用pyinstaller打包python程序为exe却不能执行的解决办法
出现下图红线所示内容,项目打包成功,在项目文件夹的dist文件夹下可以找到alien_invasion.exe。
使用pyinstaller打包python程序为exe却不能执行的解决办法
2.打开一个录制视频软件,本文用ScreenToGif录屏(由于alien_invasion.exe程序闪退,命令行输出看不到,导致难以发现具体问题。通过录屏可以查看命令行视频帧图片,从而发现问题,这是一个实用的本方法。)。双击alien_invasion.exe运行,alien_invasion.exe程序闪退之后,停止ScreenToGi视频录制,即可通过本软件查看命令行输出的导致程序闪退的具体问题,问题用红线标出。如下图所示:
使用pyinstaller打包python程序为exe却不能执行的解决办法
3.将图片引用改为绝对路径,并在前面加r,代码示例如下:

    self.image = pygame.image.load(r'C:\Users\lenovo\Desktop\alien_invasion\images\alien.bmp')

` 同理,修改ship类的飞船图片引用路径为绝对路径,并注意添加r。再次使用pyinstaller 打包,本次打包时使用命令:pyinstaller -F -w alien_invasion.py(-w可以避免程序启动时弹出命令行窗口)。即可生成可执行程序exe.,双击程序如下图所示:
使用pyinstaller打包python程序为exe却不能执行的解决办法
至此,使用pyinstaller打包程序完成,可以尽情享受自己的游戏时光啦。

相关标签: python pyinstaller