1.安装依赖库
pip install pywin32
pip install pyinstaller(安装失败可换为:pip install pyinstaller --no-use-pep517)
或可通过python第三方库网站下载后安装。
验证pyinstaller安装成功:
2.python文件生成可执行exe文件
windows+R键 -> cmd -> 控制台界面切入python文件所在的目录
执行命令:pyinstaller -F python文件名.py,生成如下文件:
生成的exe文件存在于dist文件夹下。
3.执行exe文件
执行方式两种:
1)双击exe文件;
可能的问题:
双击后界面闪退,解决方法有:
其一,可能enum不是标准的库enum模块,从python 3.6开始,enum34库不再与标准库兼容
import enum
print(enum.__file__)
# standard library location should be something like:/usr/local/lib/python3.6/enum.py
这种情况的话,卸载enum34库即可。
其二,可能代码有问题或有依赖文件未获取到,需要注意python代码是否有需要读取的文件,需放置相应路径。
另外,可在代码中加log打印,通过下面2)的运行exe方式,查看日志,排查问题。
2)windows+R键 -> cmd -> 控制台界面切入python文件所在的目录,输入命令:exe文件名
pyinstaller 打包exe文件时遇到的其它问题:
问题一:RecursionError: maximum recursion depth exceeded
解决方案:这是个递归错误,大概率是自己调用自己太多次导致的,pyinstaller -F xxx.py之后会生成一个和xxx.py文件对一个的 xxx.spec 文件,在xxx.spec添加如下内容即可:
然后再运行pyinstaller -F xxx.spec命令
问题二:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position
解决方案:命令行中先输入chcp 65001,Enter后
再输入打包命令pyinstaller -F xxx.py。