本文目的:Windows下自己制作一些python小程序,想给未安装编程环境的用户使用,需要将.py文件转化为.exe。
方法:
- 安装pywin32:pip install pywin32
- 安装Pyinstaller:pip install pyinstaller
- pyinstaller -F myfile.py
- -F 表示生成单个可执行文件
- -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
- -p 表示你自己自定义需要加载的类路径,一般情况下用不到
- -i 表示可执行文件的图标
常见问题:
1. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuation byte
解决方法:编码格式问题,改变控制台的编码格式为utf-8。
具体操作:控制台(cmd)中输入 chcp 65001
回车得到:
然后再使用 pyinstaller -F WeChat.py 打包即可
2. RuntimeError: maximum recursion depth exceeded
此时已经生成.spec文件,由于python默认的递归深度是很有限的,exe转化失败。此时需要打开.spec文件,
添加:
import sys
sys.setrecursionlimit(1000000)#随机设置一大数即可。
再输入pyinstaller –F xxx.spec即可