当前位置: 代码网 > it编程>前端脚本>Python > Python用 venv 和 requirements.txt 搭建隔离环境的实现

Python用 venv 和 requirements.txt 搭建隔离环境的实现

2026年09月10日 Python 我要评论
前言刚开始写 python 项目时,很多人会直接执行:pip install requests这样虽然方便,但项目一多就容易出问题。比如 a 项目需要 requests==2.28.0,b 项目需要

前言

刚开始写 python 项目时,很多人会直接执行:

pip install requests

这样虽然方便,但项目一多就容易出问题。比如 a 项目需要 requests==2.28.0,b 项目需要 requests==2.32.0,如果都装在系统 python 里,后面排查依赖冲突会很麻烦。

更推荐的方式是:每个项目单独创建一个虚拟环境。python 官方文档也提到,venv 可以创建轻量级虚拟环境,每个环境都有自己独立的 python 包目录。

venv 是什么

venv 是 python 标准库自带的虚拟环境工具,不需要额外安装第三方包。

它的作用可以简单理解为:在当前项目目录下创建一个独立的小环境。这个环境里有自己的 python 解释器入口、pip、激活脚本和依赖包目录。

项目 a 安装的包不会影响项目 b,项目 b 升级依赖也不会破坏项目 a。

创建项目目录

先创建一个演示项目:

mkdir python-venv-demo
cd python-venv-demo

建议项目结构保持简单:

python-venv-demo/
├── .venv/
├── main.py
└── requirements.txt

其中 .venv 是虚拟环境目录,main.py 是业务代码,requirements.txt 用来记录项目依赖。

创建虚拟环境

macos 或 linux 中执行:

python3 -m venv .venv

windows 中执行:

py -m venv .venv

执行完成后,项目目录下会多出一个 .venv 文件夹。这个目录一般不提交到 git 仓库,因为它可以根据 requirements.txt 重新生成。

激活虚拟环境

macos 或 linux:

source .venv/bin/activate

windows powershell:

.\.venv\scripts\activate.ps1

windows cmd:

.venv\scripts\activate.bat

激活成功后,终端前面通常会出现类似:

(.venv)

这说明当前 shell 已经进入项目虚拟环境。

安装依赖包

激活虚拟环境后,建议使用下面这种写法安装依赖:

python -m pip install requests

为什么不用裸的 pip install?因为 python -m pip 能更明确地使用当前 python 解释器对应的 pip,减少多个 python 版本共存时装错环境的问题。

安装完成后,可以写一个简单测试文件 main.py:

import requests

response = requests.get("https://httpbin.org/get", timeout=5)
print(response.status_code)
print(response.json()["url"])

运行:

python main.py

如果输出 200 和请求地址,说明依赖安装和代码运行都正常。

生成 requirements.txt

开发过程中安装过的依赖,需要记录下来,方便别人或服务器复现环境。

生成依赖文件:

python -m pip freeze > requirements.txt

查看内容:

cat requirements.txt

可能会看到类似结果:

certifi==2025.8.3
charset-normalizer==3.4.3
idna==3.10
requests==2.32.4
urllib3==2.5.0

这个文件应该提交到 git 仓库。别人拿到项目后,可以用它安装同样的依赖版本。

从 requirements.txt 安装依赖

如果换了一台电脑,或者部署到服务器,可以按下面流程重建环境:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

windows powershell 对应写法:

py -m venv .venv
.\.venv\scripts\activate.ps1
python -m pip install -r requirements.txt

这样就不需要把 .venv 整个目录拷来拷去,只需要保留项目代码和 requirements.txt

配置 .gitignore

虚拟环境目录不要提交到 git,建议在项目根目录创建 .gitignore

.venv/
__pycache__/
*.pyc
.env

.venv/ 可以重新创建,__pycache__/*.pyc 是 python 运行过程中生成的缓存文件,.env 通常存放本地环境变量,也不建议提交。

退出虚拟环境

如果想退出当前虚拟环境,执行:

deactivate

退出后,终端前面的 (.venv) 会消失。

常见问题

pip 安装到了系统环境。 先确认是否已经激活虚拟环境,再执行:

which python
which pip

windows 中可以使用:

where python
where pip

路径里如果包含 .venv,说明当前用的是项目虚拟环境。

powershell 不允许执行激活脚本。 windows 上可能遇到执行策略限制,可以临时执行:

set-executionpolicy -executionpolicy remotesigned -scope currentuser

然后重新打开 powershell,再激活虚拟环境。

requirements.txt 里依赖太多。 pip freeze 会把当前环境里所有包都写进去,包括间接依赖。小项目可以接受。如果项目复杂,可以考虑后续使用 poetry、uv 或 pip-tools 做更细的依赖管理。

推荐工作流

日常开发可以按这个顺序来:

mkdir my-project
cd my-project
python3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
python -m pip freeze > requirements.txt

提交代码时,提交 main.py、requirements.txt、.gitignore,不要提交 .venv。

总结

python 项目依赖管理的核心是隔离和可复现。venv 负责隔离环境,requirements.txt 负责记录依赖版本。

对于普通 python 项目,先掌握 python -m venv .venv、source .venv/bin/activate、python -m pip install -r requirements.txt 这几个命令,就已经能解决大多数本地开发和服务器部署中的依赖问题。

到此这篇关于python用 venv 和 requirements.txt 搭建隔离环境的实现的文章就介绍到这了,更多相关python venv 和 requirements.txt 搭建隔离环境内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com