从pyenv和poetry迁移到uv

格式转换

1
uvx migrate-to-uv

python版本,虚拟环境管理

操作 uv poetry pyenv 备注
更新工具自身 uv self update poetry self update pyenv update
查看所有Python版本 uv python list poetry python list pyenv versions
安装特定版本Python uv python install 3.13.5 poetry python install 3.13.5 pyenv install 3.13.5
创建Python虚拟环境 uv venv –python 3.13.5 poetry env use 3.13.5 pyenv virtualenv 3.13.5 venv_name uv默认不安装pip,如需要增加参数–seed。poetry会自动创建
在当前目录锁定Python版本 uv python pin 3.13.5 不需要 pyenv local venv_name 目录下生成.python-version,poetry不生成
激活python虚拟环境 uv run command poetry env use 3.13.5 pyenv shell venv_name pyenv 用过local后,cd到目录自动激活
查看当前Python版本 uv run python –version poetry env info pyenv version 也可以poetry run python -V

python包管理

操作 uv poetry 备注
创建应用项目 uv init proj_name –python 3.13.5 poetry new –flat proj_name –python 3.13.5
创建打包项目 uv init –package proj_name –python 3.13.5 poetry new proj_name –python 3.13.5 支持执行该命令,代码放到src文件夹中
创建库项目 uv init –lib proj_name –python 3.13.5 库为其他项目提供函数和对象,始终是一个打包的项目
安装包 uv add 包1 包2 poetry add 包1 包2 如果没有虚拟环境,都会自动创建一个
安装扩展包 uv add sqlalchemy –extra pymysql –extra mysql poetry add sqlalchemy -E pymysql -E mysql
删除包 uv remove 包1 包2 poetry remove 包1 包2 删除不用的依赖
安装特定版本的包 uv add 包1==x.xx.x 包2==x.xx.x uv add 包1==x.xx.x 包2==x.xx.x
导入依赖 uv add -r requirements.txt poetry add $(cat requirements.txt)
同步包 uv sync –no-install-project poetry sync –no-root

uv run

命令 检查 uv.lock 与 pyproject.toml 一致性 更新 uv.lock 同步虚拟环境 适用场景
uv run 开发环境,动态更新依赖
uv run –locked 是(若不一致则报错) CI/CD 或生产环境,严格可重现
uv run –frozen 快速开发,信任现有锁文件
uv run –no-sync 性能敏感,已手动同步环境

官方网站


从pyenv和poetry迁移到uv
https://itxiaopang.github.io/p/7b70d9f1ca2b4b8eb1b6ad5c454cb1bc/
作者
挨踢小胖
发布于
2025年7月6日
许可协议