banner
约 1,200 字
4 分钟

Python 虚拟环境与 pip 教程:告别版本冲突

摘要

虚拟环境解决 Python 包版本冲突。本教程依据 Python 官方文档,介绍 venv 创建与激活(Linux/macOS/Windows)、pip 常用命令、requirements.txt 导出与还原、清华镜像加速,并对比 uv、poetry、conda 等进阶工具。

Python 虚拟环境与 pip 使用教程

装 Python 包装到版本冲突、全局环境一团糟?虚拟环境(venv)就是解药:每个项目一套独立的包环境,互不干扰、随时删掉重来。本教程依据 Python 官方文档(docs.python.org,venv 与 pip 章节)整理。

一、为什么需要虚拟环境

pip 默认把包装进全局环境,两个项目依赖不同版本的同一个库时就必然冲突。虚拟环境相当于"每个项目一个独立的小 Python",激活后装的所有包都只进这个项目。

二、创建与激活(标准库 venv)

bash
cd myproject
python3 -m venv .venv          # 创建虚拟环境(.venv 是约定俗成的名字)

激活(不同系统命令不同):

bash
source .venv/bin/activate      # Linux / macOS
.venv\Scripts\activate         # Windows PowerShell 用 .venv\Scripts\Activate.ps1

激活后命令行前面会出现 (.venv) 标记,此时 pythonpip 都指向虚拟环境内的版本。退出用 deactivate

VS Code 会自动识别项目里的 .venv,打开终端时自动激活,右下角可以看到当前解释器。

三、pip 常用命令

bash
pip install requests           # 安装
pip install "requests>=2.32"   # 带版本约束安装
pip install -r requirements.txt # 按清单安装
pip list                       # 已安装的包
pip show requests              # 查看某包信息
pip install --upgrade requests # 升级
pip uninstall requests         # 卸载

四、requirements.txt:项目依赖清单

把当前环境导出成清单:

bash
pip freeze > requirements.txt

内容形如 requests==2.32.3。换电脑或部署时一条命令还原:

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

这份清单要提交进 Git,.venv 目录则写进 .gitignore 不要提交。

五、国内加速:换 pip 源

临时使用清华镜像:

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

永久设置(写进 pip 配置):

bash
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

六、进阶工具一览

工具

特点

venv + pip

标准库自带,零安装,入门首选

uv

Rust 写的新工具,安装依赖快几个数量级,兼容 pip 生态

poetry

依赖管理 + 打包一体,锁定版本更严格

conda

数据科学常用,能管 Python 本身的版本

新项目也可以直接尝试 uv(官方安装:curl -LsSf https://astral.sh/uv/install.sh | sh),它把 venv、pip、pip-tools 的活全包了,命令是 uv venvuv pip install

七、总结

需求

命令

建环境

python3 -m venv .venv

激活

source .venv/bin/activate

装包

pip install 包名

导出依赖

pip freeze > requirements.txt

还原环境

pip install -r requirements.txt

加速

换清华源

记住黄金法则:先激活虚拟环境,再 pip install。全局环境只留给工具类安装,项目依赖一律进 venv。

END