做了一个图形界面的小程序,想要分享给别人的话,就要把它打包成exe文件,这样其他人不用安装python环境还有各种库就可以使用了。
在打包之前,要保证你当前使用的python环境是“干净”的,什么是干净的,为什么要是干净的的呢?这是因为我们打包的时候只需要把程序中用到的包打包就行了,如果你当前使用的环境安装的包太多的话,比如你用的是Anaconda自带的python环境,里面包含了大量的我们根本用不到的各种包,但是打包过程中很有可能把相关的依赖包全都搞在一起了,所以最后生成的exe文件就会非常大,一个非常小的小程序打包完可能都会有200M多。此外,在代码里面尽量不要用import,能from...import...就尽量用这个,因为如果是import的话,会将整个包都打包到exe里面,增大了生成的exe文件的大小。
如果你有Anaconda,为了保证我们的python环境是干净的,可以用conda命令新建一个环境:
conda create -n python36 python=3.6
运行完这条命令,你就拥有了一个新的python3.6环境,它在Anaconda的envs文件夹下,你需要把它添加到环境变量中去(下面的图很直观了)。如有你也可以创建其它版本的python环境,比如python2.7等。conda仅安装了python 3.6相关的必须项,如python、pip等,所以新环境是非常干净的,我们可以根据程序需要再安装一些必要的包就可以了。
想要更新包可以使用这个命令:
pip install --upgrade xxxxx # xxxxx改为要更新的包
Anaconda 的安装、配置和基本使用可以参考这里:https://blog.csdn.net/imbenben/article/details/78046997
搞好python环境我们就可以开始安装pyinstaller了,这个也很简单,但需要注意的是,你现在已经有了不止一个python环境,可以用“where python”查看当前的所有python环境。
为了保证我们是安装在了正确的python环境中,需要打开python36中的“Scripts”文件夹,在此文件夹中右键并点击“OpenCMDHere”,这时再运行pip命令就是安装在了这个文件夹中。
或者我们可以把该文件夹下的pip.exe复制一份并改成其他名字,如pip36.exe,这样我们就可以使用pip36命令安装了而不用再切换到该文件夹,因为这时候系统只能找到这一个命令,这样就能放心地用而不用担心安装错地方了。
现在我们先来安装pywin32:
pip install pywin32
再安装pyinstaller:
pip install pyinsta