Conda与uv零基础学习笔记
Conda 与 uv 零基础学习笔记适合第一次学习 Python 环境管理的同学。你不需要一次记住全部内容先照着“最小练习”做成功再把本文当作字典查阅。本文按 2026 年 8 月的官方文档整理。软件会更新若命令失效请优先查看文末官方链接。1. 先理解我们到底在管理什么学习 Python 时常见的三个东西不要混在一起Python 解释器真正执行.py程序的软件例如 Python 3.12。第三方包依赖别人写好的工具例如numpy、pandas、requests。虚拟环境一个项目专用的“工具箱”里面放该项目需要的 Python 和第三方包。为什么需要虚拟环境假设项目 A 需要某工具 1.0项目 B 需要某工具 2.0。如果所有项目共用一个工具箱它们可能互相冲突。给每个项目一个独立环境就像给不同课程准备不同文具盒互不影响。Conda 和 uv 都能帮助管理环境与包但它们的重点不同。2. 一句话认识 Conda 和 uvCondaConda 是“环境管理器 包管理器”。它不仅能管理 Python 包还能安装一些非 Python 的底层软件和库。因此它常用于数据科学、机器学习CUDA、科学计算库等依赖较复杂的项目需要管理不同 Python 版本的项目不只使用 Python 的环境。Conda 是工具名Miniconda、Miniforge、Anaconda 是提供 Conda 或兼容工具的不同发行方式。初学者通常不需要安装体积很大的完整 Anaconda。uvuv 是一个用 Rust 编写的高速 Python 工具。它专注于 Python 开发可以安装和选择 Python创建虚拟环境安装 Python 包管理项目依赖和锁定文件运行项目、脚本和临时命令行工具。uv 常用于普通 Python 项目、Web 开发、自动化脚本和现代 AI 应用项目。最简单的选择建议课程或项目明确给了environment.yml用Conda。项目里有pyproject.toml和uv.lock用uv。需要复杂的 CUDA、系统库或跨语言依赖优先考虑Conda。新建普通 Python 项目想要速度快、文件清楚优先考虑uv。老师指定了工具先按老师指定的来。3. 开始前认识终端终端是输入文字命令的程序macOS打开“终端”应用Windows可打开 PowerShell、Windows Terminal或安装后使用 Anaconda PromptLinux打开 Terminal。代码块中$只代表提示符不要输入$。例如$ python--version实际只输入python--version几个基本命令pwd# 显示当前文件夹macOS/Linuxls# 显示文件macOS/Linuxcd文件夹路径# 进入文件夹cd..# 回到上一级文件夹Windows PowerShell 可用pwd、cd和dirdir用于显示文件。遇到问题时先做三件事看当前目录、看版本、完整阅读报错最后几行。4. Conda安装与检查4.1 安装方式初学者可安装Miniconda或Miniforge。安装包要从对应官方网站下载并选择与你的操作系统和 CPU 匹配的版本Windows 通常选择 Windows x86-64Intel Mac 选择 macOS x86-64Apple 芯片 MacM1/M2/M3/M4 等选择 macOS arm64不确定 Mac 芯片类型点左上角苹果菜单 →“关于本机”。安装完成后关闭并重新打开终端然后检查conda--version看到类似conda 26.x.x就表示命令可用。具体版本号不同没有关系。若提示conda: command not found先尝试重新打开终端。仍失败时说明 Conda 没有正确加入 shell可以在安装器提供的终端中使用或按官方安装说明初始化。4.2 创建第一个环境创建名为ai-study、使用 Python 3.12 的环境conda create--nameai-studypython3.12出现Proceed ([y]/n)?时输入y并回车。参数含义create创建--name可简写为-n给环境命名ai-study环境名可以换成自己的名字python3.12安装 Python 3.12。激活环境conda activate ai-study成功后终端行首通常出现(ai-study)。检查当前 Pythonpython--versionpython-cimport sys; print(sys.executable)第二条命令会显示当前正在使用的 Python 文件路径这是确认环境是否正确的可靠方法。退出环境conda deactivate4.3 安装、查看和删除包先激活环境再安装包conda activate ai-study condainstallnumpy pandas查看已安装的包conda list搜索包conda search numpy更新一个包conda update numpy删除一个包conda remove pandas如果 Conda 仓库没有某个 Python 包可以在已经激活的 Conda 环境中使用python-mpipinstall包名注意优先用 Conda 安装能找到的依赖之后再用 pip 补充不要使用pip install --user也不要在装完 pip 包后继续大规模修改 Conda 依赖否则更容易产生冲突。4.4 查看、导出和恢复环境查看所有环境condaenvlist导出适合分享的环境文件condaenvexport--from-historyenvironment.yml--from-history主要记录你主动请求安装的依赖通常比记录所有底层包更适合跨电脑分享。一个简化的environment.yml可能是name:ai-studychannels:-defaultsdependencies:-python3.12-numpy-pandas-pip-pip:-requests别人拿到文件后可以创建环境condaenvcreate--fileenvironment.yml根据文件更新已有环境condaenvupdate--fileenvironment.yml--prune--prune会移除文件中已经不再需要的依赖使用前要确认当前环境是否有想保留的包。4.5 删除 Conda 环境先退出要删除的环境conda deactivate condaenvremove--nameai-study删除环境会删除其中安装的包自己的.py项目文件通常不在环境里不会因此删除但操作前仍要仔细确认环境名。5. uv安装与检查5.1 安装 uvmacOS/Linux 官方独立安装命令curl-LsSfhttps://astral.sh/uv/install.sh|shWindows PowerShell 官方独立安装命令powershell-ExecutionPolicy ByPass-cirm https://astral.sh/uv/install.ps1 | iexmacOS 如果已安装 Homebrew也可以brewinstalluv安装后重新打开终端并检查uv--version如果 uv 已安装但命令找不到可按官方提示重开终端或运行uv python update-shell处理 uv 管理的 Python 可执行文件路径。5.2 用 uv 管理 Python查看可用与已安装的 Pythonuv python list安装 Python 3.12uv pythoninstall3.12把当前项目固定到 Python 3.12uv python pin3.12这通常会生成.python-version。uv 在需要某个尚未安装的 Python 版本时默认也能自动下载它。5.3 新建 uv 项目推荐工作流进入你准备放项目的父文件夹然后执行uv init hello-aicdhello-ai通常会出现这些文件hello-ai/ ├── .python-version # 项目倾向使用的 Python 版本 ├── README.md # 项目说明 ├── main.py # 示例程序 └── pyproject.toml # 项目设置和直接依赖运行程序uv run main.py第一次运行时uv 会准备项目环境通常放在隐藏目录.venv中。添加依赖uvaddrequests添加只在开发时需要的工具uvadd--devpytest ruff删除依赖uv remove requests同步环境使它符合项目文件与锁文件uvsync添加依赖或同步后项目通常有pyproject.toml声明项目和直接依赖适合人阅读与编辑uv.lock精确记录解析出的依赖版本帮助不同电脑得到一致环境.venv/本机虚拟环境不应提交到 Git。通常应把pyproject.toml和uv.lock提交到 Git但不要提交.venv/。5.4 手动创建 uv 虚拟环境接近传统 pip 的方法如果暂时不想建立完整项目也可以uv venv--python3.12它默认创建.venv。激活方法macOS/Linuxsource.venv/bin/activateWindows PowerShell.venv\Scripts\Activate.ps1安装包uv pipinstallrequests退出环境deactivate提示在完整 uv 项目中优先使用uv add、uv remove、uv sync和uv runuv pip install更适合兼容传统 pip 的工作流。5.5 不永久安装也能运行工具uvx例如临时运行代码格式化工具uvx ruff check.uvx会在隔离环境中运行工具不必把它永久装进当前项目。等价写法是uv tool run ruff check .。6. Conda 与 uv 的核心区别比较项Condauv主要定位通用环境和包管理Python 版本、项目、包与工具管理管理 Python可以可以管理 Python 包可以可以管理非 Python 库较强例如部分 C/C、系统库重点不在这里主要依据 Python 包生态常见依赖文件environment.ymlpyproject.toml、uv.lock环境位置常集中在 Conda 安装目录也可按路径创建项目内通常是.venv进入环境常用conda activate 环境名常用uv run不一定要手动激活速度体验依赖解析有时较慢通常很快典型场景科学计算、复杂底层依赖、CUDA 环境普通 Python、Web、脚本、现代项目开发是否只为 Python不是基本围绕 Python它们不是“谁彻底淘汰谁”的关系而是适合不同场景的工具。7. 能不能把 Conda 和 uv 一起使用技术上可以但初学阶段建议一个项目只选一套主要环境管理方式这样出错时容易判断原因。不要这样做用 Conda 创建环境又在其中创建.venv同时用conda install、pip install、uv pip install随意修改最后不知道命令到底操作了哪个 Python。如果高级项目确实要混用一种思路是Conda 管理 Python 和系统级依赖uv 管理 Python 包。但团队必须写清楚规则并在每次安装前确认python-cimport sys; print(sys.executable)对现在的你最稳妥的规则是Conda 项目用conda create/install/activate缺包时谨慎使用python -m pipuv 项目用uv init/add/sync/run不要在同一个练习项目中交替尝试两套命令。8. 两个最小练习练习 A用 Conda 运行一个程序conda create-nconda-practicepython3.12conda activate conda-practice condainstallnumpy python-cimport numpy as np; print(np.array([1, 2, 3]) * 2)conda deactivate预期看到[2 4 6]如果成功你已经完成了创建环境 → 激活 → 安装包 → 运行 Python → 退出环境。练习 B用 uv 创建一个项目uv init uv-practicecduv-practice uvaddrequests uv run python-cimport requests; print(requests.__version__)预期看到一个版本号。再运行示例程序uv run main.py完成后观察pyproject.toml和uv.lock但现在不需要读懂每一行。9. AI 学习项目示例很多 AI 教程会用 Jupyter Notebook。请分别选择一种方案不要同时执行。Conda 方案conda create-nai-notebookpython3.12jupyterlab numpy pandas matplotlib conda activate ai-notebook jupyter lab结束后回到终端按CtrlC停止服务再运行conda deactivateuv 方案uv init ai-notebookcdai-notebook uvaddjupyterlab numpy pandas matplotlib uv run jupyter lab浏览器打开 Jupyter 后可以新建 Notebook输入importnumpyasnp xnp.array([1,2,3])print(x*10)预期输出[10 20 30]。提醒PyTorch、TensorFlow 和 CUDA 的安装会受到操作系统、显卡和版本影响不要盲目复制旧教程。应查看框架当前官网给出的安装命令。10. 常见错误与排查顺序错误 1command not found含义终端找不到conda或uv。依次检查是否真的安装成功是否在安装后重新打开终端命令拼写是否正确是否需要按安装器说明初始化 shell 或更新 PATH。错误 2安装成功但 Python 说找不到包典型报错ModuleNotFoundError: No module named xxx常见原因是“安装包的 Python”和“运行程序的 Python”不是同一个。检查python-cimport sys; print(sys.executable)Conda 再检查condaenvlist conda listuv 项目再检查uv run python-cimport sys; print(sys.executable)uv tree错误 3conda activate不能使用终端可能尚未完成 Conda shell 初始化。可先查看conda init--help然后根据你使用的 shell 执行初始化例如 zshconda initzsh关闭并重新打开终端。不要在不明白含义时反复执行很多初始化命令。错误 4网络下载很慢或失败先重试一次并确认浏览器能联网。学校或公司网络、代理、防火墙、证书设置都可能影响下载。不要随便执行网上来源不明的“关闭安全检查”命令。错误 5依赖冲突不要一看到冲突就强制安装。先记录完整报错并检查Python 版本是否过新或过旧教程要求的包版本当前项目使用 Conda 还是 uv是否混用了多个环境。练习项目如果已经非常混乱重新创建一个干净环境往往更容易但删除前要确认项目代码没有放在待删除的环境目录中。正确提问模板向老师或 AI 求助时复制下面模板并填写我的系统macOS / Windows / Linux版本___ CPUIntel / Apple 芯片 / 不清楚 我使用Conda / uv 我输入的完整命令___ 完整报错___ conda --version 或 uv --version 的结果___ python --version 的结果___ python -c import sys; print(sys.executable) 的结果___ 我原本希望发生___ 实际发生___不要在提问中公开密码、访问令牌、身份证号或其他隐私。11. 命令速查表Condaconda--version# 查看版本conda create-nmyenvpython3.12# 创建环境conda activate myenv# 激活环境conda deactivate# 退出环境condaenvlist# 查看环境condainstallnumpy# 安装包conda list# 查看包conda remove numpy# 删除包condaenvexport--from-historyenvironment.yml# 导出condaenvcreate-fenvironment.yml# 从文件创建condaenvremove-nmyenv# 删除环境uvuv--version# 查看版本uv python list# 查看 Pythonuv pythoninstall3.12# 安装 Pythonuv init my-project# 新建项目uvaddrequests# 添加依赖uv remove requests# 删除依赖uvsync# 同步环境uv run main.py# 在项目环境中运行uv tree# 查看依赖树uv venv--python3.12# 手动创建 .venvuv pipinstallrequests# pip 兼容模式安装uvx ruff check.# 临时运行工具每个命令都可以看帮助conda create--helpuvadd--help12. 推荐学习顺序不要一天学完。可以按下面节奏练习第一天认识终端练习pwd、ls/dir、cd。第二天只学 Conda 的创建、激活、退出和删除环境。第三天用 Conda 安装numpy完成练习 A。第四天只学 uv 的init、add、run完成练习 B。第五天比较environment.yml、pyproject.toml和uv.lock。第六天任选一套工具完成 Jupyter 示例。第七天不看笔记重新做一次卡住时再查速查表。每做完一个步骤就问自己三个问题我现在在哪个文件夹我现在使用哪个 Python这个包安装到了哪个环境能回答这三个问题你就已经掌握了环境管理最重要的思路。13. 官方资料Conda管理环境Conda常见任务入口Miniconda 安装说明uv安装uv功能总览uv管理 Pythonuv项目uv命令参考最后提醒命令报错不等于你笨只说明电脑当前状态与命令要求不一致。保存报错、逐项检查、一次只改一个地方这就是程序员真正的工作方式。