【简明扼要】打包python程序为exe文件

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程序为exe文件】注意,这个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步。
  3. 在第二步中会生成一个虚拟环境,这个环境的名字是系统随机生成的。生成完以后就自动进入了这个环境。继续执行指令:
    pipenv shell

  4. 安装pipenv需要的库
    pipenv install pyinstaller pipenv install openpyxl pipenv install requests

  5. 安装自己的代码所需要的库(自行决定)
  6. 把自己的py代码代码复制到这个新建的目录下,重新运行 pyinstaller,方法、参数等同以往一样。

    推荐阅读