Pyinstaller -F -w -i logo.ico main.py
- 加上【-F】 代表不生成一堆乱七八糟的文件,只生成一个spec文件和build以及dist文件夹
- 加上【-w】 代表去除cmd黑框
- 加上【-i logo.ico】 代表生成时加入图标
- 如果除了main.py这个主函数之外还有多个py文件,就使用
main.py -p 1.py -p 2.py -p 3.py
即:除了主函数之外都在前面加一个【-p】 - 如果还有外部资源,比如【.ui文件】、【.txt文件】、【.db文件】等等,在打包时不用管。生成完exe后把他们放在代码要求的目录里就可以了,程序会自动去寻找
正常打包后,exe文件会出奇的大,很是离谱,原因是打包时Pyinstaller 默认加入了很多不需要的库。
自己用过的一个方法很有效,使用的是pipenv,记录一下:
- 安装pipenv
pip install pipenv
选择一个空文件夹当作虚拟环境,进入在cmd环境下创建环境:
pipenv install --python 3.6
注意,这个python的版本要和自己电脑里安装的python版本一致,否则会报错:
Warning: Python 3.7 was not found on your system... Neither 'pyenv' nor 'asdf' could be found to install Python. You can specify specific versions of Python with: $ pipenv --python path\to\python
另外,如果这里提示无法转换为 “utf-8”,直接重启电脑,重复上述第2步。
在第二步中会生成一个虚拟环境,这个环境的名字是系统随机生成的。生成完以后就自动进入了这个环境。继续执行指令:
pipenv shell
安装pipenv需要的库
pipenv install pyinstaller pipenv install openpyxl pipenv install requests
- 安装自己的代码所需要的库(自行决定)
- 把自己的py代码代码复制到这个新建的目录下,重新运行 pyinstaller,方法、参数等同以往一样。