用Pyinstaller把Python3.4程序打包成可执行文件exe

时间:2021-02-23 18:04:56

最近在学Python语言,照着书上一个用Pygame的例子写了一个游戏程序,想把它打包出来,在网上找了很多帖子,但在实际过程中还是遇到了很多问题,所以做个笔记,备忘:

  • Windows7 64位操作系统
  • Python3.4 64位
  • pygame1.9.3 64位

——————-`

pip

pip 是一个安装Python包的工具, 一般是在Python安装目录下的Scripts文件夹里。如果电脑上有pip,打开CMD窗口,进入pip所在目录,或者把这个目录添加到环境变量,输入

pip list

就可以看到已经安装的Python包
用Pyinstaller把Python3.4程序打包成可执行文件exe
如果电脑上没有,可以到网上下载一个,链接https://pypi.python.org/pypi/pip
用Pyinstaller把Python3.4程序打包成可执行文件exe
下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:

python setup.py install

等待完成安装即可。

Pyinstaller

Pyinstaller是一个用来打包程序的模块,需要到官网下载,下载链接http://www.pyinstaller.org/downloads.html
用Pyinstaller把Python3.4程序打包成可执行文件exe
当前版本支持的Python版本,以及如何安装,在官网上都有介绍。
下载下来之后解压,用CMD进入解压目录,输入

pip install pyinstaller

在这个步骤我的安装过程多次出错,基本都是缺少模块引起的。如果提示缺少distribute,官网下载,https://pypi.python.org/pypi/distribute,用pip安装

pip install distribute

如果缺少setuptools、pywin32,同样下载安装。
如果依然报错,试试输入这个

pip3 install pyinstaller

本人亲测有用。

打包

将所要打包的程序(即.py文件和引用的资源文件)放在一个文件夹里,用CMD进入这个目录,输入

pyinstaller -F -w XXX.PY

XXX.py即有程序入口的那个文件。
等待打包完成,会生成一个build文件夹和一个dist文件夹,exe可执行文件就在dist文件夹里,如果程序引用有资源,则要把资源文件放在这个exe正确的相对目录下。

如果打包出错,可以参考build文件夹里的warnXXX.txt文件,这个文件记录了一些警告信息,仅供参考,并不一定能在里面找出错误。
根据官方文档的说法,应该先打包成单文件夹的形式,也许比单文件更能找出错误,即使用

pyinstaller -D -w XXX.py

命令进行打包。
我的exe运行出错,然后我使用了Visual studio进行调试,它告诉我pygame.font.pyd出错,即pygame下字体模块加载出错,于是我下载一些.ttf格式的字体文件,然后把程序里面用到字体的地方改成

pygame.font.Font('XXX.ttf', 40)

但是这并没有解决我的问题,最后搞了半天才发现是资源路径不对,一定要检查exe文件与资源文件的相对路径!!!

最后的最后,我终于把我的程序打包成了exe,成功运行。
用Pyinstaller把Python3.4程序打包成可执行文件exe