跳到主要内容
利用 UV 与 Trae Skill 快速搭建 Python 开发环境 | 极客日志
Python AI
利用 UV 与 Trae Skill 快速搭建 Python 开发环境 Python 项目环境搭建常因重复操作耗时且易错。本方案结合 Trae Skill 系统与 uv 工具,实现虚拟环境、VS Code 配置及依赖管理的自动化。相比传统 pip,uv 速度更快且兼容性好。通过标准化流程,开发者可一键生成完整项目结构,支持跨平台部署,显著提升协作效率与开发体验。
技术博主 发布于 2026/3/28 更新于 2026/4/25 1 浏览前言
作为 Python 开发者,每次开启新项目时,虚拟环境创建、依赖管理、IDE 配置等重复性工作往往耗时且容易出错。最近在使用 Trae AI IDE 时,发现其 Skill 系统允许将常用工作流程封装成可复用的技能。
今天分享一个名为 uv-python-setup 的 Skill,它能一键完成 Python 项目的完整环境搭建,包括虚拟环境、VS Code 配置及依赖管理等。
为什么选择 UV?
在介绍具体方案前,先说说为何选用 uv 作为核心工具:
特性 UV 传统工具 (pip/virtualenv) 速度 极快(Rust 编写) 较慢 统一性 虚拟环境 + 依赖管理一体 需要多个工具配合 pyproject.toml 原生支持 需要额外配置 兼容性 完全兼容 pip - 缓存 智能缓存,极速重装 有限
uv 由 Astral 团队开发(也是 ruff 的开发者),已成为我 Python 开发的首选工具。
Skill 功能概览
这个 Skill 能帮你完成以下所有事情:
✅ 创建虚拟环境 - 使用指定 Python 版本
✅ 配置 .gitignore - 排除虚拟环境和临时文件
✅ 安装依赖 - 生产依赖和开发依赖
✅ VS Code 配置 - 自动激活虚拟环境、代码格式化、调试配置
✅ 生成 pyproject.toml - 使用 uv 自动生成项目配置
✅ 创建项目规则文档 - 记录项目配置和使用说明
完整 Skill 代码
以下是 uv-python-setup Skill 的完整内容,你可以直接复制使用:
--- name: "uv-python-setup" description: "使用 uv 工具快速搭建 Python 项目开发环境,包括虚拟环境创建、VS Code 配置、依赖管理。Invoke when user wants to set up a Python project with uv, create venv, configure VS Code auto-activation, or manage dependencies with pyproject.toml." ---
# UV Python 项目环境搭建
使用 uv 工具快速搭建完整的 Python 项目开发环境,包含虚拟环境、VS Code 配置和依赖管理。
## 前置要求
- 已安装 uv 工具 (`uv --version` )
- 项目目录已初始化
### 安装 uv(如未安装)
```powershell
# 使用 PowerShell 安装
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 验证安装
uv --version
执行步骤
1. 创建虚拟环境 # 创建虚拟环境(使用 Python 3.13)
uv venv .venv --python 3.13
# 验证创建成功
.venv\Scripts\python.exe --version
注意 :如果遇到执行策略错误,请以管理员身份运行 PowerShell 并执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
2. 配置 .gitignore 创建 .gitignore 文件,排除虚拟环境和临时文件:
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# 虚拟环境
.venv/
venv/
ENV/
env/
# IDE
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store
# 环境变量
.env
.env.local
.env.*.local
# 数据库
*.db
*.sqlite
*.sqlite3
# 日志
logs/
*.log
# 测试覆盖率
htmlcov/
.coverage
.coverage.*
coverage.xml
*.cover
# pytest
.pytest_cache/
# basedpyright
.basedpyright/
3. 安装依赖 使用 uv add 命令会自动更新 pyproject.toml 并安装依赖:
# 初始化项目(生成 pyproject.toml)
uv init
# 添加生产依赖
uv add gradio fastapi sqlalchemy pydantic chromadb openai \
langchain langgraph python-jose bcrypt httpx \
python-dotenv loguru
# 添加开发依赖
uv add --dev ruff basedpyright pytest pytest-asyncio pytest-cov
说明 :uv add 是推荐的方式,它会:
自动将依赖记录到 pyproject.toml
生成 uv.lock 锁定文件确保版本一致
团队成员只需运行 uv sync 即可同步依赖
4. 创建 VS Code 配置 创建 .vscode/settings.json:
{
"python.defaultInterpreterPath" : "${workspaceFolder}/.venv/Scripts/python.exe" ,
"python.terminal.activateEnvironment" : true ,
"terminal.integrated.profiles.windows" : {
"PowerShell" : {
"source" : "PowerShell" ,
"args" : [ "-NoExit" , "-Command" , ". ${workspaceFolder}/.venv/Scripts/Activate.ps1" ] ,
"icon" : "terminal-powershell"
}
} ,
"terminal.integrated.defaultProfile.windows" : "PowerShell" ,
"editor.formatOnSave" : true ,
"editor.defaultFormatter" : "charliermarsh.ruff" ,
"editor.codeActionsOnSave" : {
"source.fixAll.ruff" : "explicit" ,
"source.organizeImports.ruff" : "explicit"
} ,
"ruff.interpreter" : [ "${workspaceFolder}/.venv/Scripts/python.exe" ] ,
"python.analysis.typeCheckingMode" : "basic" ,
"python.testing.pytestEnabled" : true ,
"python.testing.pytestArgs" : [ "--asyncio-mode=auto" ]
}
创建 .vscode/extensions.json:
{
"recommendations" : [
"ms-python.python" ,
"ms-python.vscode-pylance" ,
"charliermarsh.ruff" ,
"ms-python.debugpy"
]
}
{
"version" : "0.2.0" ,
"configurations" : [
{
"name" : "Python: Current File" ,
"type" : "debugpy" ,
"request" : "launch" ,
"program" : "${file}" ,
"console" : "integratedTerminal" ,
"python" : "${workspaceFolder}/.venv/Scripts/python.exe"
} ,
{
"name" : "Python: FastAPI" ,
"type" : "debugpy" ,
"request" : "launch" ,
"module" : "uvicorn" ,
"args" : [ "main:app" , "--reload" , "--host" , "0.0.0.0" , "--port" , "8000" ] ,
"python" : "${workspaceFolder}/.venv/Scripts/python.exe" ,
"console" : "integratedTerminal"
}
]
}
5. pyproject.toml 配置示例 [project]
name = "my-project"
version = "0.1.0"
description = "项目描述"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"gradio>=5.0.0" ,
"fastapi>=0.115.0" ,
"sqlalchemy>=2.0.0" ,
"pydantic>=2.12.0" ,
"chromadb>=0.5.0" ,
"openai>=1.0.0" ,
"langchain>=1.2.0" ,
"langgraph>=1.0.0" ,
"python-jose>=3.3.0" ,
"bcrypt>=4.0.0" ,
"httpx>=0.28.0" ,
"python-dotenv>=1.0.0" ,
"loguru>=0.7.0" ,
]
[project.optional-dependencies]
dev = [
"ruff>=0.15.0" ,
"basedpyright>=1.38.0" ,
"pytest>=9.0.0" ,
"pytest-asyncio>=1.3.0" ,
"pytest-cov>=7.0.0" ,
]
[tool.ruff]
target-version = "py313"
line-length = 100
select = ["E" , "F" , "I" , "N" , "W" , "UP" , "B" , "C4" , "SIM" ]
ignore = ["E501" ]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
[tool.basedpyright]
pythonVersion = "3.13"
typeCheckingMode = "standard"
reportMissingImports = true
reportMissingTypeStubs = true
[tool.pytest.ini_options]
testpaths = ["tests" ]
python_files = ["test_*.py" ]
python_classes = ["Test*" ]
python_functions = ["test_*" ]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
addopts = "--cov=src --cov-report=term-missing --cov-report=html"
[tool.coverage.run]
source = ["src" ]
branch = true
omit = ["tests/*" , "*/__pycache__/*" ]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover" ,
"def __repr__" ,
"raise NotImplementedError" ,
"if TYPE_CHECKING:" ,
]
6. 创建项目规则文档 创建 .trae/project_rules.md:
# 项目规则
## Python 虚拟环境
本项目使用 uv 创建的虚拟环境,位于 `.venv/` 目录下。
### 虚拟环境激活
```powershell
.venv\Scripts\Activate.ps1
依赖管理
uv pip install <package-name>
uv pip list
uv pip freeze > requirements.txt
代码规范
ruff check .
ruff format .
basedpyright .
pytest
pytest --cov
验证安装
.venv\Scripts\python.exe --version
.venv\Scripts\python.exe -c "import fastapi; import gradio; print('OK')"
uv sync
常用命令速查 命令 说明 uv venv .venv --python 3.13创建虚拟环境 uv pip install <pkg>安装包 uv add <pkg>添加依赖到 pyproject.toml uv add --dev <pkg>添加开发依赖 uv sync同步依赖 uv run <command>在虚拟环境中运行命令 pytest --cov运行测试并生成覆盖率报告
如何使用这个 Skill
在 Trae 中使用
将上述 Skill 代码保存到 .trae/skills/uv-python-setup/SKILL.md
在 Trae 中打开项目
告诉 AI:"帮我搭建 Python 项目环境"
AI 会自动调用这个 Skill 完成所有配置
手动执行 如果你不使用 Trae,也可以按照 Skill 中的步骤手动执行,效果完全一样。
实际效果展示 使用这个 Skill 后,你的项目结构会变成这样:
my-project/
├── .venv/ # Python 虚拟环境
├── .vscode/
│ ├── settings.json # VS Code 配置(自动激活虚拟环境)
│ ├── extensions.json # 推荐扩展
│ └── launch.json # 调试配置
├── .trae/
│ └── project_rules.md # 项目规则文档
├── pyproject.toml # 项目依赖配置
├── uv.lock # 依赖锁定文件
├── .gitignore # Git 忽略配置
└── src/ # 源代码目录
VS Code 自动激活效果 打开 VS Code 终端时,会自动激活虚拟环境:
(.venv) PS D:\my -project>
python --version
代码自动格式化 保存 Python 文件时,会自动使用 Ruff 进行格式化:
def my_function (x,y,z ): return x+y+z
def my_function (x, y, z ):
return x + y + z
进阶技巧
1. 自定义依赖 # 数据科学项目
uv add numpy pandas matplotlib jupyter
# Web 开发
uv add django flask requests beautifulsoup4
# 机器学习
uv add scikit-learn torch tensorflow
2. 多环境配置 # 测试依赖
uv add --group test pytest pytest-cov pytest-asyncio
# 文档依赖
uv add --group docs mkdocs mkdocs-material
3. 与 CI/CD 集成 - name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install uv
run: pip install uv
- name: Sync dependencies
run: uv sync
- name: Run tests
run: uv run pytest
常见问题
Q1: uv 和 pip 有什么区别? A : uv 完全兼容 pip,但速度更快。你可以把 uv 看作是 pip 的"极速版",所有 pip 命令在 uv 中都可以使用。
Q2: 如何迁移现有项目到 uv? # 1. 安装 uv
pip install uv
# 2. 创建虚拟环境
uv venv .venv
# 3. 安装现有依赖
uv pip install -r requirements.txt
# 4. 生成 pyproject.toml
uv init
Q3: 可以在 Linux/Mac 上使用吗? A : 当然可以!uv 支持 Windows、Linux 和 macOS。Skill 中的路径需要根据系统调整:
Windows : .venv\Scripts\python.exe
Linux/Mac : .venv/bin/python
总结
节省时间 - 一键完成所有配置,无需手动操作
减少错误 - 标准化的流程,避免遗漏步骤
团队协作 - 所有成员使用相同的开发环境
可复用 - 在新项目中重复使用
这个 Skill 是我日常开发的得力助手,希望它也能帮助到你。
相关链接 相关免费在线工具 RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online