kuuga 发表于 2016-5-8 21:54:52

pygame打包成exe的问题

我用cxfreeze成功打包了,就是小甲鱼老师的打飞机游戏,但是打开main。exe的程序后一闪而过,求助这是为什么
是因为有if __name__=='__main__':这行代码吗?

kuuga 发表于 2016-5-8 21:59:07

我又试着把一个普通python程序打包成exe也成功了,但是打开后还是一闪而过

cold2wind 发表于 2016-5-9 08:39:36

bs4好强额,还没用过

上山砍柴去 发表于 2016-5-9 12:54:00

精华帖,好好学习,慢慢积累!

hldh214 发表于 2016-5-9 13:04:10

只能指定一个要打包的模块,也就是启动模块
所有.py文件都不能有中文字符,否则会出现编码异常。
发布后,可执行文件执行路径不能有中文(最好也不要有空格)。
启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。
if __name__ == "__main__":
main()

怪盗①⒋Ⅻ號 发表于 2016-5-9 16:00:50

试一下用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

kuuga 发表于 2016-5-9 19:24:06

hldh214 发表于 2016-5-9 13:04
只能指定一个要打包的模块,也就是启动模块
所有.py文件都不能有中文字符,否则会出现编码异常。
发布后 ...

我把主题写成一个main()函数然后直接执行main()可以吗

hldh214 发表于 2016-5-9 21:28:19

kuuga 发表于 2016-5-9 19:24
我把主题写成一个main()函数然后直接执行main()可以吗

你试试呗, 我这边测试是没问题的, 不要用if __name__ == "__main__": 就行了

kuuga 发表于 2016-5-9 21:41:44

hldh214 发表于 2016-5-9 21:28
你试试呗, 我这边测试是没问题的, 不要用if __name__ == "__main__": 就行了

我试了,打开后还是闪退

微星儿 发表于 2016-5-12 15:50:28

6楼正解,前几天就是用pyinstaller成功打包成exe

微星儿 发表于 2016-5-12 15:53:43

接10楼,是在cmd命令行里操作,用pip比较爽,一次不行多试几次,我前两次用pip都说我版本太低,后来又试几次又成功了。不过我成功打包成的单个exe文件运行时出现系统dll文件问题,我也解决不了,所以索性不打包成单文件,然后用winrar把文件夹里的文件打包成单个exe自解压文件就行了。

hongchh 发表于 2016-5-17 21:47:40

阁下不妨试试以下方式打包。需要安装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}
)

碧海缘情 发表于 2016-6-17 11:08:49

我的情况和你的一模一样,请问你是怎么解决的?

碧海缘情 发表于 2016-6-17 11:15:37

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

我叫赵硕 发表于 2016-7-30 19:10:41

你的问题解决了吗,我也遇到同样的问题了

薇薇 发表于 2016-10-8 22:34:24

加油,相信你很快就成功,你的帖子很有价值

xusiman 发表于 2018-9-15 23:28:14

6楼的方法可以啊,闪退加个-w参数就解决了,有资源的话把资源拷过去就行了

javezhan 发表于 2020-4-18 10:28:06

可以打包用pyinstaller.exe -F main.py -p bullet.py -p ......   -p用来连接剩下的py文件。我打包好了。
页: [1]
查看完整版本: pygame打包成exe的问题