Python 的虚拟环境用于隔离不同项目的依赖,避免包版本冲突。
venv(标准库,推荐)
Python 3.3+ 内置了 venv 模块,无需额外安装:
# 创建虚拟环境
python3 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows
# 退出虚拟环境
deactivate
激活后,终端提示符前面会显示 (.venv),表示已进入虚拟环境。
pip 常用操作
# 安装包
pip install requests
pip install 'flask>=2.0'
pip install -r requirements.txt
# 查看已安装的包
pip list
# 导出依赖
pip freeze > requirements.txt
# 卸载包
pip uninstall requests
requirements.txt 最佳实践
建议将依赖分为生产和开发:
requirements.txt(生产依赖):
flask==3.1.0
gunicorn==23.0.0
requests==2.32.0
requirements-dev.txt(开发依赖):
-r requirements.txt
pytest==8.3.0
black==24.4.0
ruff==0.5.0
完整的项目初始化流程
# 1. 创建项目目录
mkdir myproject && cd myproject
# 2. 创建虚拟环境
python3 -m venv .venv
# 3. 激活
source .venv/bin/activate
# 4. 安装依赖
pip install flask pytest
# 5. 导出依赖
pip freeze > requirements.txt
# 6. 将 .venv 加入 .gitignore
echo ".venv/" >> .gitignore
其他虚拟环境工具
| 工具 | 特点 |
|---|---|
| venv | 标准库,零依赖,够用 |
| virtualenv | 兼容 Python 2,功能稍多 |
| conda | 数据科学常用,管理 Python 版本 |
| poetry | 依赖管理和打包一体化 |
| pipenv | Pipfile 管理,自动激活 |
对于日常开发,venv + pip + requirements.txt 的组合已经足够简洁高效。