uv python版本与依赖管理
选择原因
text
1. 新的好玩、rust开发的执行速度快
2. 确实方便
3. 轻,软件就十几二十兆,占磁盘小
4. uv.lock可以锁版本
场景应用
场景一
从 anaconda、conda、pipenv等迁移过来
- 导出依赖列表
shell
pip freeze > requirements.txt # 调整绝对路径的模块
- 进入项目,初始化环境
shell
cd ./你的项目文件
uv init # 会生成pyproject.tom、uv.lock、.python-version文件
uv run # 会根据.python-version中的python版本生成 .venv文件,即python虚拟环境
- 将旧依赖方式同步到pyproject.toml中
shell
uv add -r requirements.txt
requirements.txt就可以删除了,以后就通过pyproject.toml来管理
场景二
新建项目
shell
mkdir project_name
cd ./project_name
uv init
# 或者 uv init project_name 我更喜欢自己创建文件夹
echo "3.11" > .python-version # 确定自己的python版本
uv run # 自定创建python环境
场景三
已有uv项目
shell
cd project_name
uv sync # 根据pyproject.tom、uv.lock自动安装依赖包
常用命令
shell
uv init # 初始化
uv run # 等同于python
uv add module # 添加模板
uv add "module==1.*.*" # 指定版本
uv remove module # 移除模块
uv sync # 同步依赖
# 兼容pip
uv pip freeze > requirements.txt
uv pip install module
...
配置全局pip源
shell
mkdir -p ~/.config/uv
vim ~/.config/uv/uv.toml
添加一下内容
text
[[index]]
url = "https://mirrors.aliyun.com/pypi/simple"
default = true
vscode选择环境
Enter interpreter path...
shell
./venv/bin/python # 没错所有项目用的都是这个路径,就不必要去找了,因为都是项目目录下