miller
发布于

python 环境 - uv + conda

uv 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(官方/经典做法)

  1. 创建环境:
    python3 -m venv myenv

会生成一个 myenv/ 文件夹,里面有独立的 Python 和 site-packages。

  1. 激活环境: macOS/Linux:
    source myenv/bin/activate

  2. 退出环境:
    deactivate

2. conda(Anaconda/Miniconda)

  1. 创建环境:
    conda create -p ./env python=3.11 -y 存储在当前项目目录

  2. 激活环境:
    conda activate ./env

  3. 退出环境:
    conda deactivate

3. pyenv(多 Python 版本管理)

  1. 安装不同版本:

pyenv install 3.11.9
pyenv install 3.12.2

  1. 设置全局/项目/本地版本:

pyenv global 3.11.9
pyenv local 3.12.2
pyenv shell 3.11.9

  1. 搭配 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 使用目标环境

浏览 (1856)
点赞
收藏
评论