ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Conda 与 uv 对比:Windows 指定 D 盘安装完整指南

2026/8/3 8:59:46 拓冰建站 浏览量
Conda 与 uv 对比:Windows 指定 D 盘安装完整指南 Conda 与 uv 到底怎么选Windows 指定 D 盘安装、避免 C 盘占满的完整指南本文适用于 Windows 10/11默认使用 PowerShell并以D:\DevTools作为示例安装目录。核心目标不是保证 C 盘“一字节都不写入”而是把真正占空间的程序、Python、虚拟环境和依赖缓存迁移到 D 盘。一、为什么 Python 开发容易占满 C 盘很多 Python 工具默认把内容写入当前用户目录例如C:\Users\你的用户名\真正容易占用大量空间的通常不是工具本身而是多个 Python 版本Conda 虚拟环境Conda 下载的软件包缓存uv 下载的 Pythonuv 的依赖缓存每个项目的.venvPyTorch、CUDA Runtime、Transformers 等大型依赖。因此只把 Conda 或 uv 的可执行文件放到 D 盘还不够还要同时修改它们的环境目录和缓存目录。二、先搞清楚Conda 和 uv 分别是什么1. Conda 是什么Conda 是一个跨平台的软件包管理器和环境管理器。它不仅能够管理 Python 包还可以管理Python 解释器C/C 动态库R、Perl 等其他语言FFmpeg、GDAL 等二进制软件编译器及部分系统级依赖。我们平时通常不是单独下载 Conda而是安装包含 Conda 的发行版发行版特点Miniconda只包含 Conda、Python 和少量基础组件体积较小Anaconda Distribution预装大量数据科学包并包含 Anaconda Navigator体积较大Miniforge社区驱动默认使用 conda-forge如果目的是节省空间并自行管理环境通常更推荐Miniconda。2. uv 是什么uv 是 Astral 使用 Rust 编写的 Python 包和项目管理工具。它可以承担很多传统 Python 工具的工作例如安装和管理 Python创建虚拟环境安装 PyPI 依赖管理pyproject.toml生成和同步uv.lock运行 Python 脚本安装和运行 Python 命令行工具在一定程度上替代pip、pip-tools、virtualenv、pipx和 Poetry 类工作流。uv 更专注于Python 与 PyPI 生态而 Conda 的管理范围更接近“Python 二进制依赖 多语言环境”。三、Conda 与 uv 的核心区别对比项Condauv核心定位通用包管理和环境管理Python 包、项目和工具管理主要包源Conda channelsPyPI 或兼容索引Python 版本管理支持支持虚拟环境Conda 环境标准 Python 虚拟环境非 Python 依赖强能够显式管理二进制依赖主要依赖 Wheel 或系统已有组件项目锁定可导出environment.yml、显式规格等原生使用uv.lock安装速度依赖求解有时较慢PyPI 工作流通常很快磁盘占用环境和pkgs缓存可能较大有全局缓存但多个.venv仍会占空间典型用户科研、数据科学、机器学习、复杂二进制依赖Web、后端、CLI、Python 库、现代工程项目项目文件常见为environment.ymlpyproject.tomluv.lock一句话概括Conda 更擅长管理“完整运行环境”uv 更擅长管理“现代 Python 项目”。四、什么时候使用 Conda以下情况优先考虑 Conda项目依赖复杂的原生库或二进制软件需要同时管理 Python、R、FFmpeg、GDAL、编译器等科研代码或旧项目已经提供environment.yml机器学习环境涉及较复杂的底层依赖希望 Python 本身也作为环境内的一个依赖统一管理团队已有成熟的 Conda 工作流。典型场景深度学习实验 遥感与地理信息处理 科学计算 生物信息学 复杂 CUDA/C 扩展 需要非 Python 工具的科研环境Conda 的优点能够管理 Python 之外的软件对复杂二进制依赖和兼容性更友好环境隔离完整科研和数据科学生态成熟支持按环境安装不同 Python 版本pkgs与envs位于同一磁盘时可以使用硬链接降低重复占用。Conda 的缺点依赖求解和环境创建有时较慢环境与缓存占用可能较大channel 混用不当容易产生冲突项目级锁定体验通常不如 uv 直接base 环境如果被随意安装大量包后期容易混乱。五、什么时候使用 uv以下情况优先考虑 uv项目主要依赖 PyPI 上的 Python 包使用pyproject.toml管理项目开发 FastAPI、Django、Flask、爬虫、自动化脚本或 CLI希望快速创建环境、解析依赖和安装包需要原生锁文件保证开发和部署环境一致需要在 CI、Docker 或多人协作中快速复现环境希望用一个工具替代pip venv pip-tools pipx等组合。典型场景Python Web 后端 Agent 和大模型应用层项目 命令行工具 自动化脚本 Python 开源库 CI/CD 和容器化项目uv 的优点速度快单个可执行文件安装简单原生支持pyproject.toml和uv.lock自动创建和同步项目环境可以安装并管理 Python 版本全局缓存可以减少重复下载命令较统一适合现代 Python 工程。uv 的缺点主要面向 Python/PyPI 生态不能像 Conda 一样直接覆盖大量非 Python 系统依赖与pip高度兼容但并非所有行为都完全一致某些老旧科研项目只提供 Conda 配置如果项目放在 C 盘默认.venv仍会跟随项目写入 C 盘。六、最简单的选择建议使用 Conda当项目包含以下任一情况时非 Python 依赖较多 需要复杂二进制库 已有 environment.yml 科研或机器学习环境较复杂使用 uv当项目满足以下特征时主要依赖 PyPI 使用 pyproject.toml 重视速度和锁文件 属于现代 Python 工程项目两者可以同时安装吗可以。它们不会因为同时安装就自动冲突。更合理的做法是不同项目分别选择 Conda 或 uv一个项目尽量只确定一个主要环境管理者不要在同一环境里反复交叉执行 Conda、pip 和 uv 的修改命令。uv 能够识别已经激活的 Conda 环境因此也可以在 Conda 环境中执行uv pip install 包名但是混合使用时应保持克制。若选择“Conda 管环境、uv 安装少量 PyPI 包”建议先用 Conda 安装能够安装的依赖最后再使用 uv并避免之后继续用 Conda 大幅修改该环境。七、在 Windows 中把 Conda 安装到 D 盘7.1 推荐目录结构D:\DevTools\ ├─ Miniconda3\ # Conda 主程序和 base 环境 └─ conda-data\ ├─ envs\ # 新建的 Conda 环境 └─ pkgs\ # 下载和解压后的包缓存envs和pkgs建议放在同一个磁盘分区。这样 Conda 更容易通过硬链接复用包文件减少重复占用。7.2 图形界面安装方法下载 Miniconda Windows x86_64 安装程序后双击运行。安装时建议选择Just Me安装目录填写D:\DevTools\Miniconda3通常不勾选Add Miniconda3 to my PATH environment variable是否注册为系统默认 Python根据个人需要决定安装完成后从开始菜单打开 Miniconda Prompt。不把 Conda 直接加入全局 PATH可以减少多个 Python 相互覆盖的问题。VS Code 可以单独选择具体解释器。7.3 PowerShell 静默安装方法假设安装程序已经下载到当前目录文件名为Miniconda3-latest-Windows-x86_64.exe在 PowerShell 中执行Start-Process-FilePath.\Miniconda3-latest-Windows-x86_64.exe-ArgumentList/InstallationTypeJustMe,/RegisterPython0,/AddToPath0,/S,/DD:\DevTools\Miniconda3-Wait注意/D安装路径必须是最后一个参数/D后面的路径不要额外套引号示例目录不包含空格能够减少安装器参数解析问题。安装完成后初始化 PowerShellD:\DevTools\Miniconda3\Scripts\conda.exeinit powershell然后关闭并重新打开 PowerShell 或 VS Code。验证conda--version conda info7.4 把 Conda 环境和缓存固定到 D 盘创建目录New-Item-ItemType Directory-Force-PathD:\DevTools\conda-data\envs|Out-NullNew-Item-ItemType Directory-Force-PathD:\DevTools\conda-data\pkgs|Out-Null配置环境目录conda config--add envs_dirsD:\DevTools\conda-data\envs配置包缓存目录conda config--add pkgs_dirsD:\DevTools\conda-data\pkgs检查配置conda config--show envs_dirs conda config--show pkgs_dirs conda config--show-sources预期能够看到D:\DevTools\conda-data\envs D:\DevTools\conda-data\pkgsConda 通常会在用户目录保存一个很小的.condarc配置文件。这不影响目标因为真正占空间的环境和缓存已经迁移到 D 盘。7.5 创建测试环境conda create-n py311 python3.11-y conda activate py311 python--version检查环境位置conda info--envs预期环境路径类似D:\DevTools\conda-data\envs\py311也可以直接通过完整路径创建环境conda create-pD:\PythonEnvs\demopython3.11-y conda activateD:\PythonEnvs\demo7.6 Conda 的空间清理查看环境conda env list删除不再使用的环境conda env remove-n 环境名清理无用缓存conda clean--all执行清理前应仔细阅读确认信息。删除缓存后未来重新创建环境时可能需要重新下载软件包。八、在 Windows 中把 uv 安装到 D 盘8.1 推荐目录结构D:\DevTools\uv\ ├─ bin\ # uv.exe、uvx.exe、uvw.exe ├─ cache\ # Python 包缓存 ├─ python-cache\ # uv 下载 Python 前使用的归档缓存 ├─ python\ # uv 管理的 Python └─ tools\ # uv tool 安装的工具环境8.2 正确安装 uv 到 D 盘先创建目录New-Item-ItemType Directory-Force-PathD:\DevTools\uv\bin|Out-Null在当前 PowerShell 中逐行执行$env:UV_INSTALL_DIR D:\DevTools\uv\binirmhttps://astral.sh/uv/install.ps1|iex安装输出中应出现installing to D:\DevTools\uv\bin不推荐的写法当你本身已经处于 PowerShell 中时不建议再嵌套执行powershell-Command...嵌套 PowerShell 容易导致引号被重新解析最终使UV_INSTALL_DIR设置失败uv 仍安装到C:\Users\你的用户名\.local\bin最稳妥的方法就是在当前 PowerShell 中分两行执行环境变量设置和安装命令。8.3 仅设置UV_INSTALL_DIR还不够UV_INSTALL_DIR只控制 uv 可执行文件的位置。uv 的缓存、Python 和工具仍可能使用默认用户目录因此还要设置以下环境变量。先创建目录New-Item-ItemType Directory-Force-PathD:\DevTools\uv\cache|Out-NullNew-Item-ItemType Directory-Force-PathD:\DevTools\uv\python-cache|Out-NullNew-Item-ItemType Directory-Force-PathD:\DevTools\uv\python|Out-NullNew-Item-ItemType Directory-Force-PathD:\DevTools\uv\tools|Out-Null永久写入当前用户环境变量[Environment]::SetEnvironmentVariable(UV_CACHE_DIR,D:\DevTools\uv\cache,User)[Environment]::SetEnvironmentVariable(UV_PYTHON_CACHE_DIR,D:\DevTools\uv\python-cache,User)[Environment]::SetEnvironmentVariable(UV_PYTHON_INSTALL_DIR,D:\DevTools\uv\python,User)[Environment]::SetEnvironmentVariable(UV_PYTHON_BIN_DIR,D:\DevTools\uv\bin,User)[Environment]::SetEnvironmentVariable(UV_TOOL_DIR,D:\DevTools\uv\tools,User)[Environment]::SetEnvironmentVariable(UV_TOOL_BIN_DIR,D:\DevTools\uv\bin,User)让这些设置在当前 PowerShell 中立即生效$env:UV_CACHE_DIR D:\DevTools\uv\cache$env:UV_PYTHON_CACHE_DIR D:\DevTools\uv\python-cache$env:UV_PYTHON_INSTALL_DIR D:\DevTools\uv\python$env:UV_PYTHON_BIN_DIR D:\DevTools\uv\bin$env:UV_TOOL_DIR D:\DevTools\uv\tools$env:UV_TOOL_BIN_DIR D:\DevTools\uv\bin8.4 把 uv 加入用户 PATH执行$uvBinD:\DevTools\uv\bin$userPath[Environment]::GetEnvironmentVariable(Path,User)$pathItems ($userPath-split;|Where-Object{$_-and$_-ne$uvBin})$newUserPath(($uvBin)$pathItems)-join;[Environment]::SetEnvironmentVariable(Path,$newUserPath,User)让当前终端立即生效$env:Path D:\DevTools\uv\bin;$env:Path关闭并重新打开 VS Code 后设置会自动生效。8.5 验证 uv 是否真的使用 D 盘where.exe uv uv--version uv cachediruv pythondiruv tooldiruv tooldir--bin预期结果应指向D:\DevTools\uv\bin\uv.exe D:\DevTools\uv\cache D:\DevTools\uv\python D:\DevTools\uv\tools D:\DevTools\uv\bin检查环境变量Get-ChildItemEnv:UV_*8.6 使用 uv 下载 Python例如安装 Python 3.12uv python install 3.12查看已发现和已安装的 Pythonuv python listuv 管理的 Python 应主要位于D:\DevTools\uv\python8.7 创建 uv 项目建议把项目本身也放到 D 盘D:New-Item-ItemType Directory-Force-PathD:\Code\uv-demo|Out-NullSet-LocationD:\Code\uv-demo初始化项目uv init添加依赖uv add requests运行程序uv run main.py常见项目结构D:\Code\uv-demo\ ├─ .venv\ ├─ .python-version ├─ main.py ├─ pyproject.toml └─ uv.lockuv 默认把项目虚拟环境创建为项目目录下的.venv。因此项目放在 D 盘.venv通常也会自然地位于 D 盘。不建议把UV_PROJECT_ENVIRONMENT全局设置为同一个固定目录否则多个项目可能共用或覆盖同一个虚拟环境。需要自定义时应按项目单独设置不同路径。8.8 uv 的空间清理查看缓存目录uv cachedir查看缓存大小和统计信息uv cache size--human清理不再需要的缓存uv cache clean删除某个 uv 管理的 Pythonuv python uninstall 3.12查看和删除工具uv tool list uv tool uninstall 工具名九、已经误装到 C 盘怎么办9.1 uv 已经安装到 C 盘常见默认目录C:\Users\你的用户名\.local\bin正确处理顺序先把 uv 安装到 D 盘把 D 盘目录放到 PATH 前面使用where.exe uv验证确认 D 盘版本可运行再删除 C 盘旧版本。检查where.exe uv uv--version确认 D 盘版本正常后可以删除旧文件Remove-Item$HOME\.local\bin\uv.exe-Force-ErrorAction SilentlyContinueRemove-Item$HOME\.local\bin\uvx.exe-Force-ErrorAction SilentlyContinueRemove-Item$HOME\.local\bin\uvw.exe-Force-ErrorAction SilentlyContinueuv 本身的几个可执行文件通常不大真正要重点迁移的是缓存、Python 和项目环境。9.2 Conda 已经安装到 C 盘如果环境不多可以导出重要环境卸载原 Conda重新安装到 D 盘配置envs_dirs和pkgs_dirs重新创建环境。导出环境conda activate 环境名 conda env export environment.yml重新创建conda env create-f environment.yml不建议直接把整个 Conda 安装目录从 C 盘剪切到 D 盘因为环境中可能包含绝对路径直接移动容易导致脚本、解释器和快捷方式失效。十、VS Code 中如何选择正确环境安装 VS Code 的 Microsoft Python 扩展后Ctrl Shift P输入Python: Select Interpreter然后选择对应解释器。Conda 示例D:\DevTools\conda-data\envs\py311\python.exeuv 示例D:\Code\uv-demo\.venv\Scripts\python.exe在终端中验证python-cimport sys; print(sys.executable)输出路径应与预期环境一致。十一、常见误区误区 1把程序安装到 D 盘就万事大吉错误。Conda 的大头通常是envs pkgsuv 的大头通常是cache managed Python tools 项目中的 .venv这些目录都需要单独关注。误区 2Conda 和 Anaconda 是同一个东西不是。Conda 是包和环境管理器Anaconda Distribution 是包含 Conda 和大量预装软件的发行版Miniconda 是包含 Conda 的轻量发行版。误区 3uv 完全等于 Conda不是。uv 可以管理 Python 和虚拟环境但它主要面向 Python 与 PyPI 生态。Conda 能更直接地管理非 Python 软件和二进制依赖。误区 4在 base 环境里安装所有包不推荐。Conda 的 base 环境主要用于维护 Conda 本身。项目应创建独立环境conda create-n 项目名 python3.11误区 5一个项目里随意混用 Conda、pip 和 uv这可能造成包管理器对环境状态的认知不一致。更稳妥的原则是一个项目一个主要环境管理者确实需要混用时应明确顺序并保留环境配置文件。十二、推荐的最终目录规划D:\ ├─ DevTools\ │ ├─ Miniconda3\ │ ├─ conda-data\ │ │ ├─ envs\ │ │ └─ pkgs\ │ └─ uv\ │ ├─ bin\ │ ├─ cache\ │ ├─ python-cache\ │ ├─ python\ │ └─ tools\ │ ├─ Code\ │ ├─ project-a\ │ │ └─ .venv\ │ └─ project-b\ │ └─ .venv\ │ └─ PythonEnvs\这套结构可以把绝大多数大型 Python 开发内容控制在 D 盘。十三、最终结论Conda 和 uv 并不是简单的替代关系。Conda更适合复杂科研、机器学习、二进制依赖和多语言环境uv更适合现代 Python 工程、PyPI 依赖、快速安装和锁文件复现两者都可以安装但每个项目最好明确主要管理工具想避免 C 盘被占满不能只修改安装目录还必须修改环境、缓存和 Python 存储目录即使完成迁移用户目录中仍可能保留少量配置文件这是正常现象。最实用的选择是复杂科研和底层依赖Conda 现代 Python 项目uv参考资料CondaWindows 安装说明Conda自定义环境与包缓存目录Conda环境概念与非 Python 依赖uv 官方文档uv 安装器选项uv 环境变量参考uv Python 环境说明文中命令以 Windows PowerShell 为例。软件选项和默认行为可能随版本更新正式操作前建议同时查看对应工具的最新官方文档。