从pyenv和poetry迁移到uv
格式转换
1 | |
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 lock --upgrade-package pymysql |
poetry update pymysql |
可以追加 ==版本号 安装指定版本 |
| 安装特定版本的包 | uv add 包1==x.xx.x 包2==x.xx.x |
uv add 包1==x.xx.x 包2==x.xx.x |
|
| 删除包 | uv remove 包1 包2 |
poetry remove 包1 包2 |
删除不用的依赖 |
| 导入依赖 | uv add -r requirements.txt |
poetry add $(cat requirements.txt) |
|
| 同步包 | uv sync --no-install-project |
poetry sync --no-root |
uv 可使用 --find-links 目录 指定 私有包位置 |
uv run
| 命令 | 检查 uv.lock 与 pyproject.toml 一致性 | 更新 uv.lock | 同步虚拟环境 | 适用场景 |
|---|---|---|---|---|
uv run |
是 | 是 | 是 | 开发环境,动态更新依赖 |
uv run --locked |
是(若不一致则报错) | 否 | 是 | CI/CD 或生产环境,严格可重现 |
uv run --frozen |
否 | 否 | 是 | 快速开发,信任现有锁文件 |
uv run --no-sync |
否 | 否 | 否 | 性能敏感,已手动同步环境 |
官方网站
- PEP518:https://peps.python.org/pep-0518/
- uv官方文档:https://docs.astral.sh/uv/
- pyenv用法介绍:https://github.com/pyenv/pyenv
- pyenv官方安装工具:https://github.com/pyenv/pyenv-installer
- poetry官方文档:https://python-poetry.org/docs/
从pyenv和poetry迁移到uv
https://itxiaopang.github.io/p/7b70d9f1ca2b4b8eb1b6ad5c454cb1bc/