0%

SQLModel自学教程(4) - 虚拟环境管理

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

# 激活环境(Linux/macOS)
$ source sqlmodel-env/bin/activate

# 激活环境(Windows)
> .\sqlmodel-env\Scripts\activate.bat
  • 内置Python3.3+无需额外安装
  • 环境目录建议添加到.gitignore
  • 退出命令:deactivate

3.依赖管理实践

1
2
3
4
5
6
7
8
# 安装SQLModel及依赖  
(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
# requirements-dev.txt  
-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