用 Python 虚拟环境隔离项目依赖:venv 从创建到 pip freeze 的完整流程
为什么需要虚拟环境
很多 Python 新手一开始都在全局环境里装包:项目 A 要 requests 2.28,项目 B 要 requests 2.32,装来装去互相覆盖,最后连哪个项目依赖哪个版本都说不清。虚拟环境就是给每个项目单独准备一套 Python 解释器和包目录,项目之间互不干扰,换电脑、换同事交接时也能按同一份依赖清单复现。
1. 先确认 Python
python --version
python -m pip --version
如果系统里有多个 Python,建议先确认你要用的那一个,再创建环境,避免建完才发现版本不对。
2. 创建虚拟环境
在项目根目录执行:
python -m venv .venv
完成后项目里会出现 .venv 文件夹,里面有独立的解释器和 pip。习惯上把环境文件夹命名为 .venv,一眼就能看出它是虚拟环境,也方便统一写进忽略规则。
3. 激活虚拟环境
Windows(PowerShell):
.venv\Scripts\Activate.ps1
macOS / Linux:
source .venv/bin/activate
激活成功后,命令行提示符前面会出现 (.venv)。这一步最容易被跳过:没激活就 pip install,包其实装到了全局环境,虚拟环境里仍然找不到。
4. 安装依赖并查看
pip install requests
pip list
确认无误后,把当前环境里的包导出成清单:
pip freeze > requirements.txt
导出的文件大概是这样:
requests==2.32.3
urllib3==2.2.2
pip freeze 只记录已安装包,不记录你“打算装”的包,所以导出前先跑通一次代码,再导出。
5. 在新环境里复现
deactivate
python -m venv .venv-new
source .venv-new/bin/activate
pip install -r requirements.txt
如果新环境里程序能正常跑起来,说明依赖清单是完整的;如果报错缺包,回到原环境补装并重新导出一次。
6. 几个新手常见坑
- 忘记激活:先看提示符有没有
(.venv),再装包。 - 把
.venv提交到代码仓库:它体积大、跟操作系统有关,应该忽略。 requirements.txt里混进本地路径包:复现时会失败,尽量只保留 PyPI 上的包和版本号。- 每个项目共用一个环境:图省事反而最费事,项目一多就分不清。
建议在 .gitignore 里加一行:
.venv/
小结
记住四个动作就够了:创建 python -m venv .venv,激活,安装并用 pip freeze > requirements.txt 导出,需要复现时用 pip install -r requirements.txt。把这个流程固定下来,以后每个 Python 项目一开始就隔离依赖,能少踩很多“在我电脑上能跑”的坑。
- 点赞
- 收藏
- 关注作者
评论(0)