概述
将python程序打包成exe可执行文件有多种方法,这里讲一种最简单最常用的方法,只需要使用pyinstaller命令即可。
一、环境
Windows 7或10 x64
Python 3.6.1
二、需要包
pyinstaller 3.3
pywin32
这里需要注意!!!
在网上找很多使用pyinstaller库将python程序打包成exe的方法都是需要python3.3版本以前的。而python3.6想要打包pyinstaller库不支持,但是经过很多轮尝试之后发现pyinstaller 3.3这个版本的包可以成功将python3.6版本的程序打包成exe。
还有一点需要注意,打包成exe都需要pywin32这个包,但是这个包很顽固,python2可以很好安装,但是python3安装时出现很多问题,需要下载本地安装。但是pywin32本地安装不像其它库直接运行python setup.py install就行,pywin32这个包需要下载一个exe文件的安装包然后点击运行才行。pywin32包连接:https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/ 下载时需注意自己python是32位的还是64位的,比如我的是python3.6 32位,我就下载这个:
三、pywin32的安装
下载pywin32后,点击运行,会发现出现下面的界面:
同样需要注意!!!!
很多同学到这个界面时,会报错,提示检测不到系统安装了python3.6!!!,而且不能手动添加路径。这个原因是你的python3.6不在系统的注册表中,所以需要写一个脚本把python加入到系统注册表,脚本文件sys.py在这:
(地址:https://download.csdn.net/download/qq_35203425/10123871)。
简单运行该sys.py程序后,就能添加python3.6到系统注册表了。下一步就是安装pywin32这个包了,还是像上面,运行该exe包,这时候就能出现上面那个能检测到python目录的界面,一直点击下一步,完成。
四、pyinstaller 3.3安装
直接用pip安装的pyinstaller是3.2.1版本(我这是17年11月份的情况,后来可能自动安装更高版本),但是pyinstaller 3.2.1不能打包成exe,会出现很多溢出错误。所以需要更新包,网上很多人说去github上下载最新版的pyinstaller,地址:https://github.com/pyinstaller/pyinstaller,下载后解压安装运行该包,然后将其中的PyInstaller 文件夹 复制到你安装pyinstaller的相应目录Python36Libsite-packages,进行替换。
但是!!!!我按照上述说法还是不行,最后我发现我的pycharm里说明了pyinstaller有新版本3.3,这时候我就,选中pyinstaller包,然后点击右边的向上箭头,就能升级为3.3版本了,下面就是我的包:
五、打包自己的py成exe
真是万事俱备只欠东风,都到这一步了,希望不会再出现错误。果然,一切顺利,成功打包python3.6项目成exe!!!下面是具体步骤:
首先建立一个python项目,然后到你的项目文件夹下,打开cmd,注意要是在该文件路径下,然后运行pyinstaller xxx.py即可。
1.建立xxx.py程序
2.cmd运行命令
打开cmd,运行pyinstaller xxx.py命令(我的文件名为threeD.py,我是用git bash运行的该命令,cmd也一样),发现不再报错,运行成功!!!
3.结果
会发现该文件夹下多了很多文件,点击dist,进去能发现一个exe文件,点击运行即可(我的程序是一个画图)
大功告成!!!!
4.优化
因为这个打包会出现很多需要依赖的文件,那如果我只想要一个exe怎么办呢?那么这时候就需要加一个-F参数就行:pyinstaller -F xxx.py就行了。
更多参数:
-F, –onefile | 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用 |
-D, –onedir | 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护 |
-K, –tk | 在部署时包含 TCL/TK |
-a, –ascii | 不包含编码.在支持Unicode的python版本上默认包含所有的编码. |
-d, –debug | 产生debug版本的可执行文件 |
-w,–windowed,–noconsole | 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效) |
-c,–nowindowed,–console | 使用控制台子系统执行(默认)(只对Windows有效) pyinstaller -c xxxx.py pyinstaller xxxx.py --console |
-s,–strip | 可执行文件和共享库将run through strip.注意Cygwin的strip往往使普通的win32 Dll无法使用. |
-X, –upx | 如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note) |
-o DIR, –out=DIR | 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下. |
-p DIR, –path=DIR | 设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源 |
–icon=<FILE.ICO> | 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标 pyinstaller -i ico路径 xxxxx.py |
–icon=<FILE.EXE,N> | 将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效) |
-v FILE, –version=FILE | 将verfile作为可执行文件的版本资源(只对Windows系统有效) |
-n NAME, –name=NAME | 可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字 |
然后看自己文件夹dist下的exe文件:
发现原来那些依赖配置什么都打包到exe中了,所以这个exe比上一个图中的exe要大,但运行结果都是一样的。关于pyinstaller还有很多有趣的东西,比如设置好看的ico图标等,期待你的发现。
补充:如果是安装了anaconda,那么Pyinstaller就很好安装,因为anaconda里面包含很多日常需要的包
最后
以上就是陶醉小蘑菇为你收集整理的python3.6打包成exe可执行文件,已解决方案的全部内容,希望文章能够帮你解决python3.6打包成exe可执行文件,已解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复