#python 环境 - uv + condauv python list — 列出uv支持的python版本 uv python install cpython3.12 — 安装某个python版本 (3.12) uv run -p 3.12 xxx.py — 使用特定版本python运行xxx.py uv run -p 3.12 python — 运行python交互界面 uv run xxx.py — 使用系统python或当前工程的虚拟环境运行xxx.py uv init — 创建工程 uv add pydantic_ai — 添加依赖 (pydantic_ai) uv tree — 打印依赖树 uv remove pydantic_ai — 删除依赖 uv build — 编译工程 项目管理(推荐方式) uv 支持以 pyproject.toml 为中心的现代项目管理方式,这是比 pip 模式更推荐的使用方法,尤其适合团队协作和多环境部署。 初始化项目 uv init my_project cd my_project 这会创建以下基本项目结构: my_project/ ├── pyproject.toml # 项目配置和依赖声明 ├── .python-version # 固定 Python 版本 ├── README.md └── main.py 添加和移除依赖 在项目模式下,推荐使用 uv add 和 uv remove 管理依赖,它们会自动更新 pyproject.toml 和 uv.lock: # 添加生产依赖 uv add requests # 添加指定版本的依赖 uv add "requests>=2.31.0" # 添加开发依赖(只在开发环境使用,如测试框架) uv add --dev pytest ruff # 移除依赖 uv remove requests 安装项目全部依赖(uv sync) 克隆项目或更新 pyproject.toml 后,运行以下命令一键安装所有依赖: uv sync uv sync 说明:类似于 pip install -r requirements.txt,它会根据 pyproject.toml 和 uv.lock 安装所有依赖,确保环境与其他开发者完全一致。如果安装速度慢,可以在 pyproject.toml 中设置国内镜像源: [tool.uv] index-url = "https://pypi.tuna.tsinghua.edu.cn/simple" 生成/更新锁文件 uv lock 该命令会解析 pyproject.toml 中的依赖并生成(或更新)uv.lock 文件。uv.lock 应该提交到版本库,确保团队所有成员使用完全相同的依赖版本。 #以下失效TL;DR:Python 多环境(virtualenv、venv、conda 等)靠 激活 (activate) 来切换。激活就是修改当前终端的环境变量(主要是 PATH),让你用的 python 和 pip 指向指定环境。 ⸻ 🔎 常见环境管理方式 #1. venv / virtualenv(官方/经典做法) 创建环境: python3 -m venv myenv 会生成一个 myenv/ 文件夹,里面有独立的 Python 和 site-packages。 激活环境: macOS/Linux: source myenv/bin/activate 退出环境: deactivate ⸻ #2. conda(Anaconda/Miniconda) 创建环境: conda create -p ./env python=3.11 -y 存储在当前项目目录 激活环境: conda activate ./env 退出环境: conda deactivate ⸻ #3. pyenv(多 Python 版本管理) 安装不同版本: pyenv install 3.11.9 pyenv install 3.12.2 设置全局/项目/本地版本: pyenv global 3.11.9 pyenv local 3.12.2 pyenv shell 3.11.9 搭配 pyenv-virtualenv 可以直接创建虚拟环境并激活。 ⸻ ⚙️ “激活 (activate)” 本质 • 修改 PATH,让当前终端里输入 python 和 pip 时,指向对应环境的可执行文件 • 设置环境变量(如 VIRTUAL_ENV),便于工具检测你在哪个环境 比如 source myenv/bin/activate 后,which python 会变成: /你的路径/myenv/bin/python 退出后才会恢复系统默认 Python。 ⸻ ✅ 总结 • venv/virtualenv → 轻量,官方推荐,适合单项目 • conda → 强大,跨语言依赖管理,适合科学计算 • pyenv → 主要管 Python 版本,常配合虚拟环境使用 • activate = 切换 PATH,让当前 shell 使用目标环境 ⸻