将打飞机游戏打包成 exe

发现很多朋友在写了 pygame 的打飞机游戏之后,都很想打包成 exe 文件分享给别人玩。但是在打包的过程中,可能遇到一些问题。今天我就来整理一下 pygame 打包 exe 的一些注意事项。

另外,pygame 打飞机游戏的相关资源,包括图片和代码,我放在了论坛的帖子里,需要的朋友可去下载。

在这里,我介绍两种较为常见的打包 exe 工具,cx_freeze 和 py2exe。先说 cx_freeze

cx_freeze 打包的过程比较简单,安装好之后运行一条命令就可以了。基本步骤就是:

1.搜索并下载符合你 python 版本的 cx_freeze

当前最新版本:

https://pypi.python.org/pypi?:action=display&name=cx_Freeze&version=4.3.4

一定要选择符合的版本,包括操作系统、系统位数、python版本。

2.安装

3.配置 cxfreeze.bat,确保 cx_freeze 命令可执行

如果正确安装,则在命令行中运行

cxfreeze -h

可以看到一长串的使用说明。否则会提示“系统找不到指定的路径”。

安装完无法正确执行的话,到你的 python 安装文件夹,假设为 C:\Python27\,下面的 Scripts 文件夹中,找到 cxfreeze.bat 文件。如果没有就手动增加一个。

确认其中的内容确实指向正确的文件(那句命令是在一行里,手机上看会换行):

@echo off

C:\Python27\python.exe C:\Python27\Scripts\cxfreeze %*

重新打开命令行,如果执行 cxfreeze 仍然不成功,试着将 C:\Python27\Scripts 加入环境变量 Path,或者直接使用完整路径,即:

C:\Python27\Scripts\cxfreeze -h

4.执行打包命令

cxfreeze mygame.py

C:\Python27\Scripts\cxfreeze mygame.py

mygame.py 是你要打包的主文件或启动文件,要替换成对应的文件名。

默认会生成打包好的 exe 文件在 dist 文件夹中。打包过程完成。

着重说一下几个需要注意的点,和常见问题:

1.cxfreeze的版本

很多打包中的诡异问题,比如提示中说到 sys 相关模块有错误之类,很可能都是因为使用了错误的版本。这常常由于在安装 python、pygame、cxfreeze 的时候,其中某个选择了64位的版本,而另一个又是32位的原因。因此,在不是很确定版本的情况下,我的建议是,统一选择 win32、python2.7 相对应的版本。这是兼容性最大的选择。即使你的电脑是64位系统,仍然可以正常运行32位程序,反之则不可以。

2.点击打包好的 exe 一闪而过

这通常是发生了错误,程序关闭。要想知道错误原因,可在命令行下,到文件所在目录执行 mygame.exe,则可以看到报错信息。

而正常的打包程序,执行完之后也会立即关闭窗口。如果想让窗口停留,可以在程序末尾加上一句

raw_input("press any key to exit...")

让程序阻塞在等待输入的状态。

3.Couldn't open xxx.jpg

这是打包后的程序找不到所需要的资源,因为资源原本是相对于 py 代码文件的路径。打包后,需要保证从 exe 文件的相对路径能正确找到图片文件。通常就是把图片复制到 exe 所在文件夹中。

4.如果不想要程序背后那个黑色的命令行窗口,可以在打包时加上参数 --base-name,如:

cxfreeze mygame.py --target-dir dist --base-name=123

再来说下 py2exe

py2exe比较麻烦的地方在于,打包需要提供一个配置文件。我找了一个针对 pygame 打包的配置文件,同样附在论坛上。(文件来自 目光博客http://eyehere.net/2011/python-pygame-novice-professional-py2exe/)

打包步骤:

1.搜索并下载符合你 python 版本的 py2exe

当前最新版本:

http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/

一定要选择符合的版本,包括操作系统、系统位数、python版本。同样,建议 win32、python2.7。

2.安装

安装好之后,在 python 命令行下运行 import py2exe,不会报错。

3.修改配置文件,把其中的

self.script = "mygame.py"

改成你的代码主文件或启动文件。

4.执行打包命令

python pygame2exe.py

后面那个文件就是你修改后的配置文件。运行成功则打包完毕,exe 文件默认也是在 dist 文件夹中。

额外的注意事项:

1.如果打包后执行 exe 出错,问题会记录在 mygame.exe.log 中。

2.我在打包时,出现了一个莫名错误:

RuntimeError: EndUpdateResource: 系统无法打开指定的设备或文件。

后来在网上搜索了下,结论是:关闭xx管家/xx安全卫士之类的软件,就可以成功打包了。

关于 cx_freeze 和 py2exe 的详细配置,我会在论坛里转载两篇相关文章供参考。各位也可以在搜索引擎里寻找相关资料。

(0)

相关推荐

  • Python项目如何生成requirements.txt文件

    Pyhon项目中,一般都会有一个 requirements.txt 文件,这个文件主要是用于记录当前项目下的所有依赖包及其精确的版本号,以方便在一个新环境下更快的进行部署. 使用 pip freeze ...

  • Python如何发布程序的详细教程

    如何发布一个Python程序: 1.安装一个pyInstaller 在pycharm里点 file -–>setting-–>Project workspace-->Interpre ...

  • 如何将Python写的代码打包成.exe可执行文件

    有时候我们需要将自己写的代码打包成exe文件,给别人使用需要怎么办呢?以下将讲解Python代码如何打包成.exe文件. 1. 下载pyinstaller 因为Python中有很多三方包,我们想要这些 ...

  • Python打包成exe终极方案

    Python入门与进阶 昨天 以下文章来源于凹凸数据 ,作者朱小五555 目前比较常见的打包exe方法都是通过Pyinstaller来实现的,本文也将使用这种常规方法.如果对这块已经很熟悉的小伙伴,可 ...

  • 别再问我Python打包成exe了!(终极版)

    Py程序打包成exe文件很多同学都会,但是很多人打包完发现:一个简单的Py程序打包成exe文件之后编程几百兆了,今天将带大家学习如何将python脚本打包成10多M的? 那今天就给大家全面总结一下:P ...

  • python代码打包成exe

    python代码打包成exe

  • python 代码如何打包成.exe文件(Pyinstaller)

    前言 python写的代码如何打包成.exe可执行程序,让别人电脑上没安装过 python 的小伙伴也可以直接运行? 本篇讲如何用PyInstaller库一步步打包python代码. PyInstal ...

  • 别再问我Python怎么打包成exe了!

    大家好~之前发布了一篇文章:5 个无聊透顶的Python 程序,之后一直有读者在后台问有关Python脚本打包成exe的问题.今天就推荐给大家一篇文章,全面总结一下:Python如何打包成exe,以及 ...

  • Python脚本打包成exe,看这一篇就够了!

    大家好,我是早起. 一直有读者在后台问有关Python脚本打包成exe的问题. 今天就给大家全面总结一下:Python如何打包成exe,以及如何打得足够小. 标准打包 目前比较常见的打包exe方法都是 ...

  • Python打包成exe,看这一篇就够了!

    前言 也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇(如果有).再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈.但是呢 ...

  • 装逼技能:把你的Python程序打包成exe可执行文件

    还记得大明湖畔的夏雨荷么? 夏雨荷??? 哦,不对,还记得上次咱们公号爬取美女的项目么? 记得,简直刺激~对了,我想给我朋友玩玩,可是他没有安装Python,有什么办法么? 有!可以打包成一个 exe ...