1.虚拟环境核心作用
graph TD
A[系统Python] --> B{虚拟环境}
B --> C[项目A依赖库v1.0]
B --> D[项目B依赖库v2.0]
- 隔离不同项目的依赖包版本
- 避免全局Python环境污染
- 支持多版本Python并存
2.venv标准库使用
1 2 3 4 5 6 7 8
| $ python -m venv sqlmodel-env
$ source sqlmodel-env/bin/activate
> .\sqlmodel-env\Scripts\activate.bat
|
- 内置Python3.3+无需额外安装
- 环境目录建议添加到.gitignore
- 退出命令:
deactivate
3.依赖管理实践
1 2 3 4 5 6 7 8
| (sqlmodel-env) $ pip install sqlmodel psycopg2-binary
(sqlmodel-env) $ pip freeze > requirements.txt
(sqlmodel-env) $ pip install -r requirements.txt
|
- 推荐依赖文件格式:
1 2 3
| sqlmodel==0.1.0 psycopg2-binary==2.9.5 python-dotenv==0.21.0
|
4.多环境配置方案
1 2 3 4 5
| -r requirements.txt pytest==7.2.0 mypy==1.0.0 ipython==8.10.0
|
- 环境分类建议:
| 环境类型 |
包含内容 |
| base |
生产环境必需依赖 |
| dev |
开发工具+测试框架 |
| docs |
文档生成相关工具 |
5.虚拟环境管理器对比
| 工具 |
优势 |
缺点 |
| venv |
Python内置/轻量级 |
功能基础/无版本管理 |
| conda |
跨平台/支持非Python包 |
环境启动速度较慢 |
| poetry |
依赖解析/打包发布一体化 |
学习曲线陡峭 |
| pipenv |
自动管理依赖文件 |
性能问题/维护活跃度下降 |
提示:中小型项目推荐使用venv+requirements.txt,大型项目可考虑poetry或conda