为了避免打包后体积太大,我在虚拟环境里打包。
新建一个文件夹,创建虚拟环境
python -m venv path
然后激活虚拟环境:
Linux下命令是
source path/bin/activate
Windows下命令是
path\Scripts\activate.bat
之后就进入虚拟环境了
pip装包
pip install 你用到的包
pip install pyinstaller
打包命令
pyinstaller -F -w test.py
-F是打包成单个文件,-w是不显示小黑框。
报错:ModuleNotFoundError: No module named ‘win32com’
pip install pypiwin32
报错:找不到pkg_resources.py2_warn
虚拟环境路径\Lib\site-packages\pkg_resources_init_.py 注释掉86行
去找对应的文件,才发现:
其实没啥用,只有python2调用时才有这个提示,但我现在用的语言是python3,注释掉更没问题了。
win7-32bits不兼容打包程序
我的平台是64位的,但是要运行exe的电脑是32位的。
怎么看是多少位的exe?
notepad++打开exe,搜PE,后跟d的是64位的,跟L的是32位的
直接上结论:
- 32位的exe可以在64位系统运行,相反不可以。
- 32位的python,在64位打包仍然出64位exe。
- 实在不行别用python打包了。