Python uv 包的应用
安装
curl -LsSf https://astral.sh/uv/install.sh | sh
brew install uv
新项目启动
# 创建项目
uv init myproject
cd myproject
# 添加依赖
uv add requests pandas numpy matplotlib
# 添加开发工具
uv add pytest black ruff --dev
# 运行代码(自动激活环境)
uv run python user/path/myproject/main.py
docker 部署准备
# 生成 requirements.txt 文件
uv export --format requirements-txt > requirements.txt
# 构建发布包
uv build
# 发布到 pypi
uv publish
团队协作
# 拉代码
git clone https://github.com/username/myproject.git
cd myproject
# 同步依赖
uv sync
# 新增依赖
uv add new-package
# 新增后通知其他成员
git add uv.lock pyproject.toml
git commit -m "add new-package dependency"
常用命令查询
# 快速添加依赖
uv add requests # 最新版本
uv add "django>=3.2,<4.0" # 指定版本
uv add pytest --dev # 添加开发依赖
uv add jupyter --group notebook # 分组管理
uv add mysql-connector-python --optional database # 可选依赖
# 环境同步
uv sync # 同步所有依赖
uv sync --dev # 同步开发依赖
uv sync --group docs --group test # 同步特定组依赖
# python 版本管理
uv python list # 列出所有版本
uv python install 3.10 # 安装指定版本
uv python pin 3.10 # 为项目指定版本
uv python unpin # 取消指定版本
uv python uninstall 3.10 # 卸载指定版本
uv python use 3.10 # 临时切换
uv run --python 3.12 pytest # 指定版本执行
uv run --python 3.10 pytest # 指定版本执行
# 工具安装
uv tool install black ruff jupyter # 安装全局工具
uv tool run black . # 直接运行工具 无需安装
uv tool run ruff check # 直接运行工具 无需安装
uv tool list # 列出所有工具
uv tool upgrade black # 升级工具
uv tool uninstall black # 卸载工具
# 从 pip + venv 迁移
uv init
uv add -r requirements.txt
# 从 poerty 迁移
uv sync
# 从 pipenv 迁移
pipenv requirements > requirements.txt
uv init
uv add -r requirements.txt
rm Pipfile Pipfile.lock # 清理旧文件
# 清理缓存
uv cache clean
# 重建环境
rm -rf .venv && uv sync
# 查看依赖树
uv tree
# 查看配置
uv --version
# 依赖冲突解决
uv lock --resolution lowest-direct
# 验证环境一致性
uv lock --check
# 强制重新解析
uv lock --upgrade
在现有项目中创建虚拟环境
uv venv --python 3.10.12 .venv-project
uv pip install -r requirements.txt
Pycharm 中的配置
使用 Pycharm 配置 uv 解释器,jetbrains 提供了官方文档:https://www.jetbrains.com/zh-cn/help/pycharm/uv.html
但看下来感觉说的并不是很清楚,下面的 uv env use 依然不知道填什么

研究后只要执行 uv run python -c "import sys; print(sys.executable)" 代码填入即可