1.背景:
在网上能够查找到很多的Python脚本打包方法,因为用的不多,时常需要重新重新找可靠而简单的方法,今天将其记录下来,方便自己和他人做参考。
2.方法:
使用pipenv创建虚拟python环境,在虚拟环境中安装.py文件所用到的库(即py文件中import 的第三方库),然后在pipenv所创建的虚拟环境中使用pip安装打包所用到的pyinstaller。注意:本机安装过pyinstaller的也要重新进入虚拟环境中安装,不然会使用pyinstaller命令打包时,还是会生成大体积的.exe可执行文件。
3.具体步骤:
(1)情况一:初次打包
- 在命令行(CMD)使用pip命令安装pipenv库,用于创建虚拟环境
(一般是直接进入目标的文件夹,shift+鼠标右键,进入powershell更为方便,在之后的步骤中可以直接写py文件的名称,不用写绝对路径)
pip install pipenv
2、新建一个准备当环境的文件夹,并cd+地址进入该文件夹(如果是从文件夹里进的powershell,这一步可以免去)
3、在powershell中输入以下命令,建立虚拟环境
pipenv install
4、进入虚拟环境(以下操作皆为虚拟环境下的操作)
pipenv shell
5、安装.py文件用到的模块
pip install 【.py用到的模块】
6、安装pyinstaller模块,用于打包.py文件
pip install pyinstaller
7、使用pyinstaller打包文件
pyinstaller -Fw xxx.py -i logo.ico (xxx.py文件名称根据实际情况更改)
-F 参数为 产生单个的可执行文件
-w 参数为 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-i 是需要给打包后的软件自定义图标
pyinstaller 更多参数可自行找度娘咨询。
8、结果文件
运行完第7步之后,在目录下回生成‘dist’文件夹,里面存放的就是结果文件。
(2)已经完成打包,之后重新打包
若再次打包时,情况一中所创建的虚拟环境未曾删除,可跳过情况一中的第1、2、3步,直接进行第四步进入虚拟环境。然后第5步同理保留原先添加过的py模块,即若无新增新的模块,可跳过第5步和第6步,直接进行第7步打包操作。
1、cd进入此前创建虚拟环境的文件夹。
2、进入虚拟环境(以下操作皆为虚拟环境下的操作)
pipenv shell
3、安装.py文件用到的模块()
pip install 【相较上一次打包新增的模块】
4、使用pyinstaller打包文件
pyinstaller -Fw E:\\pipenvtest\test.py(.py文件根据实际情况更改)
-F 参数为 产生单个的可执行文件
-w 参数为 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
4.一些使用中的小方法
- 在有input()时,把窗口去掉后,会报错,去掉w后再重新打包就没问题。
- 在命令框(cmd/powershell)用pip list可以看当前环境安装的库。用pipenv graph可以看当前虚拟环境安装的库的关系。
- 更新单个库
pip install --upgrade 《库名》
更新所有
pip install --upgrade
5.下载库太慢?用下面这些镜像源
https://mirrors.aliyun.com/pypi/simple/
https://pypi.tuna.tsinghua.edu.cn/simple
https://pypi.douban.com/simple
使用方法:pip install xxx -i https://mirrors.aliyun.com/pypi/simple/