Python笔记7|pyinstaller模块打包exe内存太大的解决方案(pipenv)

pyinstaller模块打包的exe内存太大解决方案(pipenv)

目录

    • pyinstaller模块打包的exe内存太大解决方案(pipenv)
      • 1.原因
      • 2.解决方案
        • 2.1 安装pipenv
        • 2.2 新建虚拟环境
        • 2.3 在虚拟环境下安装Python
        • 2.4 激活虚拟环境
        • 2.5 安装需要的库
        • 2.6 重新运行 pyinstaller
      • 3.关于pipenv创建的环境路径
        • 3.1 pipenv创建的虚拟环境路径
        • 3.2 卸载虚拟环境的多余库
        • 3.3 pipenv指令解释

编写的python项目,如何在没有python环境的电脑中运行?
打包成exe可执行程序即可

链接: 打包Python文件的常用方法

但有些项目在打包exe程序后的文件大小会非常大,大到令人怀疑人生…
,Python笔记7|pyinstaller模块打包exe内存太大的解决方案(pipenv)_第1张图片

这是为什么???

\color{FireBrick}{}
Python笔记7|pyinstaller模块打包exe内存太大的解决方案(pipenv)_第2张图片

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
# 或 pipenv install --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

你可能感兴趣的:(Python学习笔记,办公软件技巧,python,pycharm,开发语言)