使用虚拟环境打包Python小程序经验

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

本文适用于用 Pyhton 开发的单文件小程序,特别建议配合 Trae 使用。

一、安装 PYTHON 环境

推荐安装 python-3.8.10,下载地址:
https://www.python.org/ftp/python/3.8.10/python-3.8.10.exe

这是32位的版本,兼容性好。

二、创建虚拟环境

进入命令提示符,无需管理员权限:
<CMD>
python -m venv myenv  # 创建虚拟环境

cmd 进入默认位置是 C:\Users\User,所以创建的虚拟环境目录在 C:\Users\User\myenv,实际上就是一个普通目录。

三、激活虚拟环境

Windows:
<CMD>
myenv\Scripts\activate

Linux/macOS:
<BASH>
source myenv/bin/activate

四、更新 pip 和 pyinstaller

<CMD>
python.exe -m pip install --upgrade pip

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple  (这里用了镜像源)

做到这一步可以把 myenv 打个包,下次删掉旧的 myenv 目录,解压缩该包即可,无需再做第二步和第四步,可以直接第三步。

五、运行 py 文件,安装依赖文件

在命令行进入 py 文件所在位置。该位置与 myenv 并无任何关系。
<CMD>
cd C:\Users\User\Desktop\develop\test

如果有 requirements.txt ,直接安装依赖模块
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

没有 requirements.txt ,通过运行程序来识别依赖模块
python main.py   

这一步的目的是试探缺少哪些依赖模块,如果遇到类似提示就手工安装相应模块
ModuleNotFoundError: No module named 'pandas'

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

需要注意的是,有的 import 语句写在了函数里,不会在程序刚运行时提示,如 openpyxl,在读取 Excel表格时才提示出错。(建议程序统一在开头 import,而且最好不用 from 的格式)

pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple  

六、用 pyinstaller 打包成单一文件

pyinstaller --clean --onefile --noconsole --hidden-import xlrd main.py

--clean :清理之前的临时文件
--onefile:打包成单一文件,简洁,但运行时会有解压缩的环节(不显示),略微缓慢。 
--noconsole:运行时不显示命令行窗口 
--hidden-import xlrd:强制打包依赖文件
main.py:要打包的主程序文件

需要注意的是,pyinstaller 会自动打包依赖文件,但可能存在遗漏的情形,如 xlrd 就很常见,需要强制打包。

七、其他

打包完成后会在 main.py 所在目录下生成 build 和 dist 目录,可执行程序在 dist 目录里。

此外 build\main\warn-main.txt 里有打包过程中遇到的一些问题信息,可以用于问题分析。之前说的 xlrd 在没强制打包前能搜索到相关信息,强制打包后就搜索不到了,说明强制打包成功。这个文件内容有很多,但一般没什么影响,只要程序实际运行不出错就行。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值