kizumi_header_banner_img

夜晚 未来 永远 恐惧 梦见 终结

加载中

文章导读

python版本管理


avatar
Gouki 2025年10月27日 183

版本管理

虚拟环境

#创建虚拟环境 修改了python sys.path 这个列表里 python的全局目录

# python 的导包机制:

# python 的装包路径:

python3 -m venv .venv  # 建议起名venv 方便 ide识别

项目依赖分享

# 早期使用 pip freeze > requirements.txt 冻结版本号

#  有缺陷 分不清什么是 直接依赖 和 间接依赖 在创建的虚拟环境里卸载相应模块时 pip uninstall 对应模块 只能卸载对应无法卸载间接依赖

#  现代管理方案 使用 pyproject.toml文件 在他成为标准之前 不同开发工具有独立的配置文件 例如mypy.ini pytest.ini 等等  现在绝大多数都支持pyproject.toml

# pyproject.toml 替换requirements.txt dependencies 中声明直接依赖 删除依赖  pip install .  将当前项目打包 然后打包好 安装进环境 开发时有缺点  不利于改动源码 开发时推荐 pip install -e . 创建源码链接文件

 

pyproject.toml 格式简览

[project]

name = “proj”

version = “0.1.0”

dependencies = [

“Flask==3.1.1”

]

总结

venv 创建隔离环境 pyproject.toml 管理依赖  添加新依赖过程繁琐 需要对齐版本修改这个配置文件 虽然解决了 pip uninstall 孤儿依赖的问题 但是添加繁琐

 

社区解决方案

可以把下面的工具 理解成 对venv 和 pip 的高级封装

Conda

# 适合 ai单兵 合作使用很差

# 需要base python 环境 不遵守 pyproject规范 跨平台 工程化有点地狱

 

Poetry

UV

# 流程对比

# 手动流程 -》1.python – m venv  .venv 创建环境  2.source .venv/bin/activate 激活环境 3.手动编辑配置文件 edit pyproject.toml 添加依赖声明 4.安装依赖 pip install -e .

# uv add flask  其实他也做了手动的流程不过他自动检查

# uv sync  拿到别人的项目 自动搭建环境 安装依赖

# uv还有各种命令 对比来说就是你可以注意力减少关注虚拟环境 直接 uv add uv sync uv run

# uv python list — 列出uv支持的python版本

# uv python install cpython3.12 — 安装某个python版本 (3.12)

# uv run -p 3.12 xxx.py — 使用特定版本python运行xxx.py

# uv run -p 3.12 python — 运行python交互界面

# uv run xxx.py — 使用系统python或当前工程的虚拟环境运行xxx.py

# uv init — 创建工程

# uv add pydantic_ai — 添加依赖 (pydantic_ai)

# uv tree — 打印依赖树

# uv remove pydantic_ai — 删除依赖

# uv build — 编译工程

 

PDM

其他

docker

 

 

 



评论(0)

查看评论列表

暂无评论


发表评论

个人信息

avatar

面向kpi编程,python的狗。

15
文章
0
评论
1
用户

分类

最新评论

    广告 10-11