pygame打包成exe的问题
我用cxfreeze成功打包了,就是小甲鱼老师的打飞机游戏,但是打开main。exe的程序后一闪而过,求助这是为什么是因为有if __name__=='__main__':这行代码吗? 我又试着把一个普通python程序打包成exe也成功了,但是打开后还是一闪而过 bs4好强额,还没用过 精华帖,好好学习,慢慢积累! 只能指定一个要打包的模块,也就是启动模块
所有.py文件都不能有中文字符,否则会出现编码异常。
发布后,可执行文件执行路径不能有中文(最好也不要有空格)。
启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。
if __name__ == "__main__":
main()
试一下用PyInstallerwww.pyinstaller.org
可用一句命令打包:pyinstaller -F -w -i manage.ico app.py
-F:打包为单文件
-w:Windows程序,不显示命令行窗口
-i:是程序图标,app.py是你要打包的py文件
另外需要pywin32。
安装方法:
先跑pip install pywin32再跑pip install pyinstaller
hldh214 发表于 2016-5-9 13:04
只能指定一个要打包的模块,也就是启动模块
所有.py文件都不能有中文字符,否则会出现编码异常。
发布后 ...
我把主题写成一个main()函数然后直接执行main()可以吗 kuuga 发表于 2016-5-9 19:24
我把主题写成一个main()函数然后直接执行main()可以吗
你试试呗, 我这边测试是没问题的, 不要用if __name__ == "__main__": 就行了 hldh214 发表于 2016-5-9 21:28
你试试呗, 我这边测试是没问题的, 不要用if __name__ == "__main__": 就行了
我试了,打开后还是闪退 6楼正解,前几天就是用pyinstaller成功打包成exe 接10楼,是在cmd命令行里操作,用pip比较爽,一次不行多试几次,我前两次用pip都说我版本太低,后来又试几次又成功了。不过我成功打包成的单个exe文件运行时出现系统dll文件问题,我也解决不了,所以索性不打包成单文件,然后用winrar把文件夹里的文件打包成单个exe自解压文件就行了。 阁下不妨试试以下方式打包。需要安装py2exe,然后把下面pack.py的代码放到你要打包的py文件所在的文件夹下面,运行pack.py,目录下就会多出1个dist文件夹,里面就有打包好的exe程序以及依赖到的dll文件。打包程序依赖到的静态文件(比如打飞机游戏程序用到的图片,音频等)则需要手动复制到dist文件夹里面。打包完成以及静态文件到位之后就可以运行.exe程序啦。#pack.py
from distutils.core import setup
import py2exe
import sys
sys.argv.append('py2exe')
py2exe_options = {
"dll_excludes": ["MSVCP90.dll",],
"compressed": 1,
"optimize": 2,
"ascii": 0,
"bundle_files": 1
}
setup(
name = 'Demo',
version = '1.0',
windows = ['main.py',],
zipfile = None,
options = {'py2exe': py2exe_options}
) 我的情况和你的一模一样,请问你是怎么解决的? hongchh 发表于 2016-5-17 21:47
阁下不妨试试以下方式打包。需要安装py2exe,然后把下面pack.py的代码放到你要打包的py文件所在的文件夹下 ...
还是 不行
生成main.exe后双击打开闪退,出现main.log文件,打开后如下
‘Traceback (most recent call last):
File "main.py", line 22, in <module>
pygame.error
’ 你的问题解决了吗,我也遇到同样的问题了 加油,相信你很快就成功,你的帖子很有价值 6楼的方法可以啊,闪退加个-w参数就解决了,有资源的话把资源拷过去就行了 可以打包用pyinstaller.exe -F main.py -p bullet.py -p ...... -p用来连接剩下的py文件。我打包好了。
页:
[1]