virtualenv解决pyinstaller打包python为exe太大问题

本文介绍使用pyinstaller打包Python代码成exe时遇到的问题及解决办法。打包的exe初始达800M,尝试用pipenv创建虚拟环境未成功,后用virtualenv成功,生成约80M的exe。还指出要保证Python库版本兼容,且在虚拟环境中需正确安装pyinstaller。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用pyinstaller打包python代码成exe。
问题:打包的exe太大,达到800M。
解决办法:创建python虚拟环境,只安装需要的包。

先是使用pipenv,发现总是无法出现pipfile.lock,使用pyinstaller生成的exe还是很大,发现在pipenv里边使用pyinstaller时,使用的python解释器总是原本的python解释器,没有使用pipenv的python解释器。
最后尝试virtualenv,成功,生成的exe大概80M左右。
需要注意的是,python库版本之间保持兼容。

发现打包exe总是使用原本的python解释器,是因为在虚拟环境中pyinstaller没有安装成功,调用的还是原本python环境的pyinstaller。当初安装pyinstaller使用的是压缩包,安装失败,改为使用whl成功了。

而且,使用pyinstaller的虚拟环境比pipenv生成exe要快。

### 使用 PyInstallerPython 脚本打包EXE 文件 #### 安装 PyInstaller 为了使用 PyInstaller 打包 Python 应用程序,首先需要通过 `pip` 工具来安装它。可以利用清华大学的镜像源加速下载过程: ```bash pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 此命令会将 PyInstaller 下载并安装到当前使用的 Python 环境中[^2]。 #### 准备工作 确保待打包的应用程序已经测试完毕,并且所有依赖项都已正确配置好。如果应用程序位于特定目录,则建议在此目录内运行后续命令以便于管理相对路径和其他资源文件。 #### 创建单个可执行文件 要创建一个独立的 Windows 可执行文件(`.exe`),可以在命令行输入如下指令: ```bash pyinstaller -F -w -i your_path/log.ico main.py ``` 这里 `-F` 参数用于指定生成单一文件模式;`-w` 表示不显示控制台窗口;而 `-i` 后面跟的是图标文件的位置,用来设置最终 `.exe` 的图标;最后则是主入口脚本的名字,在这里是假设为 `main.py`。 #### 添加额外的数据文件 (Linux 示例) 当项目中有其他必要的数据文件时,可以通过 `--add-data` 选项将其包含进来。例如,在 Linux 上添加名为 `book.json` 的 JSON 配置文件作为附加资源的方式如下所示: ```bash pyinstaller --onefile --add-data "book.json;." main.py ``` 注意这里的分号前后的部分分别是源文件及其相对于生成的应用程序根目录的目标位置[^3]。 #### 处理库路径问题 有时可能遇到某些第三方模块无法被自动检测的情况,这时可通过 `-p` 或者 `--paths` 来显式指明这些外部库所在的路径。比如针对某个虚拟环境中未被识别出来的扩展库,应该提供该环境对应的站点包(`site-packages`)的具体地址给 PyInstaller 进行查找[^4]。 ```bash pyinstaller --onefile --paths /path/to/your/virtualenv/lib/site-packages main.py ``` 以上就是关于如何运用 PyInstallerPython 编写的代码转换成为跨平台支持的操作系统原生二进制格式——特别是适用于 Windows 平台上的 `.exe` 文件的一个基本指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值