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,记录一下:

  1. 安装pipenv pip install pipenv

  2. 选择一个空文件夹当作虚拟环境,进入在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步。

  1. 在第二步中会生成一个虚拟环境,这个环境的名字是系统随机生成的。生成完以后就自动进入了这个环境。继续执行指令:

    pipenv shell
  2. 安装pipenv需要的库

    pipenv install pyinstaller
    pipenv install openpyxl
    pipenv install requests
  3. 安装自己的代码所需要的库(自行决定)

  4. 把自己的py代码代码复制到这个新建的目录下,重新运行 pyinstaller,方法、参数等同以往一样。