使用PyInstaller打包Python程序

转一部分: http://ju.outofmemory.cn/entry/137370

使用PyInstaller打包Python程序

PyInstaller介绍: 

PyInstaller是一个能将Python程序转换成单个可执行文件的程序,操作系统支持Windows, Linux, Mac OS X, Solaris和AIX。并且很多包都支持开箱即用,不依赖环境。

环境为windows7操作系统,python2.7.8 virtual environment 
官网:  https://github.com/pyinstaller/pyinstaller

详细步骤: 
1,win7下面先安装这个依赖:  pywin32  ,下载下来后切换到venv2.7,然后使用easy_install xxx.exe安装

2,pip安装PyInstaller:

pip install pyinstaller

3,打包过程中可能会出现msvcp90.dll找不到的问题,去  http://cn.dll-files.com/msvcp90.dll.html  下载第三个zip文件,解压后放到C:\Windows\System32,如果是64位的还要放到C:\Windows\SysWOW64目录下。

4,再次运行报MSVCR90.dll找不到,同理去  http://cn.dll-files.com/MSVCR90.dll.html  下载MSVCR90.dll,放到C:\Windows\System32和C:\Windows\SysWOW64中。

5,将你的整个程序先复制到某个临时文件夹下面,比如D:\tmp\core-wxpython,此目录下有个main.py是执行入口

6,执行build命令,并添加必要的搜索路径,外加执行文件的图标:

cd D:\tmp\core-wxpython
pyinstaller -F -w -i d:\tmp\main.ico main.py

如果还想添加自定义的依赖库,就要加上-p参数:

pyinstaller -F -w -p D:\tmp\core-python\libs -i d:\tmp\main.ico main.py

参数说明: 
-F 表示生成单个可执行文件 
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧! 
-p 表示你自己自定义需要加载的类路径,一般情况下用不到 
-i 表示可执行文件的图标

需要注意的是: 
1).检查生成的\XXX\build\pyi.win32\XXX\warnXXX.txt(XXX是你的项目名)中,是否缺少了必要的模块。如果有缺少的,那么去如上所述,添加必要的搜素路径,使得pyinstaller在运行时,可以找到对应的模块并集成进来。 
2).此处我这里没有UPX,暂时没去折腾。估计是用UPX去压缩,压缩后所生成的exe文件的大小,会小得多。

    原文作者:时间:2018-11-02 13:02:12
    原文地址: http://blog.itpub.net/29519108/viewspace-2218515/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞