pyinstaller模块打包的exe内存太大解决方案(pipenv)
编写的python项目,如何在没有python环境的电脑中运行? 打包成exe可执行程序即可
链接: 打包Python文件的常用方法
但有些项目在打包exe程序后的文件大小会非常大,大到令人怀疑人生… ,
这是为什么???
\color{FireBrick}{}
1.原因
exe文件内存大可能是因为anaconda环境打包了很多不必要的环境,很多的不必要的库也被打包进去了。 ??PS:能够用"from 包 import 模块"的方法就最好用这种方法,能够减少很多不必要的内容。
2.解决方案
用pipenv创建比较干净的环境。在干净的环境下,用pip安装程序所需要的第三方库,再打包程序。
2.1 安装pipenv
与安装其他python库一样,在cmd环境下安装:
pip install pipenv
2.2 新建虚拟环境
安装完成后,随便找一个盘符,在这个盘符的根目录(最好是根目录)新建一个文件夹,作为虚拟环境把需要打包的.py文件及其所需的资源文件都复制过来。
2.3 在虚拟环境下安装Python
在虚拟环境下安装Python:
pipenv --python 3.9
2.4 激活虚拟环境
pipenv shell
打开pipenv的命令行
2.5 安装需要的库
根据要打包的程序中导入的库,在pipenv环境下重新安装,例如:
pipenv install pyinstaller
pipenv install removebg
pip list 命令可查看该虚拟环境下载的库
2.6 重新运行 pyinstaller
pyinstaller -F -w -i icon.ico python.py
??icon.ico 是图标文件 ??python.py 是打包的主程序 链接1: 在线icon制作链接1 链接2: 在线icon制作链接2
3.关于pipenv创建的环境路径
3.1 pipenv创建的虚拟环境路径
所有用pipenv创建的环境均能在下列路径找到:
C:\Users\玖玖\.virtualenvs
3.2 卸载虚拟环境的多余库
pip uninstall 库名
3.3 pipenv指令解释
1、pip install pipenv --安装 pipenv 库 2、pipenv --python 3.9 --创建对应python版本的虚环境: 3、pipenv install --创建虚环境 4、pipenv shell --进入虚环境 5、pip install xxx --在虚环境中 pip 安装依赖库 6、pip install pyinstaller --在虚环境中安装 pyinstaller 依赖库 7、pyinstaller -F filename.py --进行首次打包,这里是打包成一个exe(参数可另外添加)
PS: ??打包完成后,进入新建虚拟环境文件夹下的 dist 文件夹,运行里面的
f
i
l
e
n
a
m
e
.
e
x
e
\color{blue}{filename.exe}
filename.exe,看是否正常运行、各功能是否正常。 ?如果 filename.exe 无法正常运行,看控制台的报错信息,一般都是找不到依赖库导致的,因此,修改文件夹A下的 main.spec 文件,在 hiddenimports 里面加上报错的依赖库名,这是一个列表,因此以str的方式加,然后再次 pyinstaller 打包:pyinstaller main.spec 。
|