环境:
Windows 10
Anaconda Python 3.6
常见方式
Python脚本打包成可执行文件有多种方式(详见下表):
Pyinstaller和cx_Freeze的资料最多,本文记录使用Pyinstaller发布exe的步骤以及两个坑
步骤安装Pyinstaller
操做简单,打开cmd通过pip进行安装即可(第一个坑),具体命令为:
pip install pyinstaller
2.使用Pyinstaller
打开cmd,cd到.py源文件的所在目录,执行命令:
pyinstaller -F XXX.py
pyinstaller参数解释:
-F: 表示生成单个可执行文件
-D: 创建一个目录,包含exe文件,但会产生很多依赖文件(默认)
-w: 去掉控制台窗口
-i: 给可执行程序自定义图标
两个坑
1.python3.6版本,执行pip 直接安装pyinstaller,会导致可执行文件抛出“failed to execute pyi_rth_pkgres”异常
解决方案:
第一步,pip卸载pyinstaller,执行命令:
pip uninstall pyinstaller
第二步,从github上安装pyinstaller,执行命令:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
2.Anaconda下的python环境,源码转exe时,会加载并打包很多无效的依赖,导致可执行文件过大,200MB起步,很臃肿并不利于传送、发布。
解决方案:
创建虚拟环境,只安装源码所需要import的包,然后从github上安装pyinstaller,之后执行命令,打包exe即可。创建和激活虚拟环境,具体代码如下:
conda create -n source_to_exe python=3.6
activate source_to_exe
写在最后:
经验的积累和踩过的坑的个数,呈正相关关系~~~