venv 与 pip
不同项目往往依赖不同版本的第三方库,如果把所有依赖都装在系统全局 Python 环境里,很容易出现版本冲突。venv 是 Python 3.3+ 内置的虚拟环境模块,无需额外安装,配合 pip 就能为每个项目创建互相隔离的依赖环境,是最基础、最零依赖的方案。
创建与使用虚拟环境
# 在项目目录下创建名为 .venv 的虚拟环境
python -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windows (cmd)
.venv\Scripts\Activate.ps1 # Windows (PowerShell)
# 激活后,python / pip 都指向虚拟环境内的解释器
python -V
which python # Linux/macOS,确认路径指向 .venv 内
# 退出虚拟环境
deactivate激活后,终端提示符通常会带上 (.venv) 前缀,表示当前处于虚拟环境中;pip install 安装的包只会进入这个隔离目录,不会污染系统 Python 或其他项目。
用 pip 管理依赖
# 安装单个包
pip install requests
# 安装指定版本
pip install "django>=4.2,<5.0"
# 查看已安装的包
pip list
# 导出当前环境依赖,生成 requirements.txt
pip freeze > requirements.txt
# 在新环境中根据 requirements.txt 安装依赖
pip install -r requirements.txt
# 升级 / 卸载
pip install --upgrade requests
pip uninstall requestsrequirements.txt 是最通用的依赖清单格式,几乎所有 Python 项目、CI 流水线、Docker 镜像构建都认识它,是团队协作和部署时同步依赖版本的标准做法。
小结
venv + pip 的优点是零额外安装、随 Python 自带,适合不想引入额外工具链的简单项目;缺点是没有真正的依赖锁定机制(requirements.txt 只是"当时环境里装了什么"的快照,不保证可重复安装),依赖解析也比新一代工具慢。如果项目依赖复杂、需要更强的可重复构建保证,可以考虑本分类后面介绍的 uv。
最后更新于