尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法

发布时间:2026/9/28 19:39:39

资讯中心
01
ARTICLE

Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法

Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
1. 问题背景Windows 下安装 Anaconda 时我将 Anaconda 安装到了D:\software\Anaconda3但是执行conda env list发现虚拟环境却被创建到了 C 盘# conda environments: # py312 C:\Users\Lenovo\.conda\envs\py312 py313 C:\Users\Lenovo\.conda\envs\py313 base * D:\software\Anaconda3也就是说Anaconda 主程序在 D 盘base环境在 D 盘新创建的py312、py313环境却在 C 盘。我的目标是以后所有 Conda 虚拟环境统一放到D:\software\Anaconda3\envs同时将已经创建在 C 盘的环境迁移到 D 盘。2. 为什么 Anaconda 在 D 盘虚拟环境却在 C 盘Conda 的安装目录和虚拟环境目录并不是必须相同的。例如Anaconda D:\software\Anaconda3 虚拟环境 C:\Users\Lenovo\.conda\envs这是完全允许的。Conda 会维护多个虚拟环境搜索路径可以通过conda info查看。例如envs directories : D:\software\Anaconda3\envs C:\Users\Lenovo\.conda\envs C:\Users\Lenovo\AppData\Local\conda\conda\envsConda 创建环境时会选择优先级较高并且当前用户具有写权限的目录。因此即使 Anaconda 安装在D:\software\Anaconda3如果普通 Windows 用户无法写入D:\software\Anaconda3\envsConda 就可能自动退回到C:\Users\用户名\.conda\envs这也是为什么虚拟环境最终出现在 C 盘。3. 设置以后所有虚拟环境默认保存到 D 盘希望以后执行conda create -n test python3.12时环境自动创建到D:\software\Anaconda3\envs\test可以执行conda config --prepend envs_dirs D:\software\Anaconda3\envs然后检查conda config --show envs_dirs如果看到envs_dirs: - D:\software\Anaconda3\envs - C:\Users\Lenovo\.conda\envs说明配置已经生效。关键是D:\software\Anaconda3\envs必须排在第一位。此时再创建环境conda create -n test python3.12理论上应该生成D:\software\Anaconda3\envs\test4. 迁移已有 Conda 环境时遇到 WinError 5已有环境C:\Users\Lenovo\.conda\envs\py312准备迁移到D:\software\Anaconda3\envs\py312使用conda create --prefix D:\software\Anaconda3\envs\py312 --clone C:\Users\Lenovo\.conda\envs\py312但出现错误PermissionError: [WinError 5] 拒绝访问。 D:\software\Anaconda3\envs\py312在conda info中还可以看到base environment : D:\software\Anaconda3 (read only) administrator : False这说明问题不是 Conda 环境本身损坏而是当前 Windows 用户没有权限向D:\software\Anaconda3\envs写入文件。5. 正确解决 WinError 5不建议以后每次都使用“管理员身份运行 Anaconda Prompt”。更合理的方法是给当前 Windows 用户授予envs目录的修改权限。假设 Windows 用户名为Lenovo首先以管理员身份打开 CMDWindows 搜索 → cmd → 右键 → 以管理员身份运行然后执行icacls D:\software\Anaconda3\envs /grant Lenovo:(OI)(CI)M /T其中Lenovo是 Windows 用户名。参数含义M表示 Modify即修改权限。(OI)表示文件继承权限。(CI)表示子目录继承权限。/T表示递归应用到所有子目录。6. 建议同时给 pkgs 目录权限Conda 下载的软件包缓存通常位于D:\software\Anaconda3\pkgs如果这个目录也没有写权限将来安装包时仍可能报类似权限错误。因此建议同时执行icacls D:\software\Anaconda3\pkgs /grant Lenovo:(OI)(CI)M /T最终执行的两个命令为icacls D:\software\Anaconda3\envs /grant Lenovo:(OI)(CI)M /T icacls D:\software\Anaconda3\pkgs /grant Lenovo:(OI)(CI)M /T完成后关闭管理员 CMD。以后正常打开 Anaconda Prompt 即可不需要一直使用管理员权限。7. 测试 D 盘目录是否已经可写正常打开 Anaconda Prompt。执行mkdir D:\software\Anaconda3\envs\test_write如果没有报错说明已经有写权限。然后删除测试目录rmdir D:\software\Anaconda3\envs\test_write8. 重新迁移 py312 环境不要直接在资源管理器中剪切C:\Users\Lenovo\.conda\envs\py312然后粘贴到 D 盘。因为 Conda 环境中的某些脚本和配置可能包含绝对路径直接移动可能导致环境异常。推荐使用 Conda 自带的 clone。首先conda activate base然后conda create --prefix D:\software\Anaconda3\envs\py312 --clone C:\Users\Lenovo\.conda\envs\py312如果之前失败的 clone 已经留下D:\software\Anaconda3\envs\py312这样的残缺目录可以先删除rmdir /s /q D:\software\Anaconda3\envs\py312然后重新执行 clone。9. 迁移 py313同理conda activate base执行conda create --prefix D:\software\Anaconda3\envs\py313 --clone C:\Users\Lenovo\.conda\envs\py31310. 检查环境是否迁移成功执行conda env list迁移过程中可能暂时看到py312 C:\Users\Lenovo\.conda\envs\py312 py313 C:\Users\Lenovo\.conda\envs\py313 D:\software\Anaconda3\envs\py312 D:\software\Anaconda3\envs\py313 base D:\software\Anaconda3出现两份环境是正常的。因为此时旧环境还没有删除。11. 测试迁移后的环境测试py312conda activate D:\software\Anaconda3\envs\py312然后where python正常情况下应该优先看到D:\software\Anaconda3\envs\py312\python.exe检查 Python 版本python --version例如Python 3.12.x还可以查看包conda list如果原环境安装了 NumPy可以进一步测试python -c import numpy; print(numpy.__version__)如果都正常说明迁移成功。py313也可以采用同样方式测试conda activate D:\software\Anaconda3\envs\py313 where python python --version12. 确认正常后删除 C 盘旧环境注意一定要确认 D 盘新环境可以正常使用后再删除 C 盘环境。首先退出当前环境conda activate base删除旧的 py312conda remove --prefix C:\Users\Lenovo\.conda\envs\py312 --all删除旧的 py313conda remove --prefix C:\Users\Lenovo\.conda\envs\py313 --all然后再次conda env list最终理想状态为# conda environments: # base * D:\software\Anaconda3 py312 D:\software\Anaconda3\envs\py312 py313 D:\software\Anaconda3\envs\py31313. PyCharm 中找不到 Conda 环境怎么办即使 Conda 环境已经创建成功PyCharm 也不一定能够自动搜索出来。这种情况下不需要纠结 PyCharm 为什么没有自动识别直接手动指定 Python 解释器即可。进入File → Settings → Project → Python Interpreter → Add Interpreter → Add Local Interpreter选择已有环境然后找到D:\software\Anaconda3\envs\py312\python.exe或者D:\software\Anaconda3\envs\py313\python.exe选择即可。如果 PyCharm 还要求指定 Conda executable可以使用D:\software\Anaconda3\Scripts\conda.exe可以通过下面命令确认where conda14. 常用排查命令汇总查看所有 Conda 环境conda env list查看 Conda 详细信息conda info重点关注base environment package cache envs directories administrator查看虚拟环境默认目录conda config --show envs_dirs查看 Conda 配置文件来源conda config --show-sources查看当前调用的是哪个 Condawhere conda查看当前 Pythonwhere python查看 Python 版本python --version15. 本次问题的核心原因整个问题实际上包含两个不同层面。问题一为什么环境创建到了 C 盘因为 Conda 可以配置多个环境目录D:\software\Anaconda3\envs C:\Users\Lenovo\.conda\envs C:\Users\Lenovo\AppData\Local\conda\conda\envs虽然希望优先使用 D 盘但当前 Windows 用户对D:\software\Anaconda3\envs没有写权限因此 Conda 使用了用户目录中的C:\Users\Lenovo\.conda\envs问题二为什么 clone 时出现 WinError 5错误PermissionError: [WinError 5] 拒绝访问本质是 Windows 文件权限问题。特别是base environment : D:\software\Anaconda3 (read only) administrator : False说明当前普通用户不能修改 Anaconda 安装目录下的部分文件夹。解决方法不是重装 Conda而是给D:\software\Anaconda3\envs和D:\software\Anaconda3\pkgs适当的修改权限。16. 最终推荐的 Conda 目录结构最终建议保持D:\software\Anaconda3 │ ├─ python.exe │ ├─ Scripts │ ├─ Library │ ├─ pkgs │ └─ envs │ ├─ py312 │ ├─ py313 │ ├─ pytorch │ └─ 其他环境即base D:\software\Anaconda3 虚拟环境 D:\software\Anaconda3\envs\环境名 包缓存 D:\software\Anaconda3\pkgs这样 Anaconda 主程序、包缓存、虚拟环境全部集中在 D 盘不会不断占用系统盘 C 盘。17. 最简解决流程如果以后再次遇到类似问题可以直接按下面顺序排查。首先conda info检查envs directories base environment administrator然后设置conda config --prepend envs_dirs D:\software\Anaconda3\envs管理员 CMD 中授权icacls D:\software\Anaconda3\envs /grant Lenovo:(OI)(CI)M /T icacls D:\software\Anaconda3\pkgs /grant Lenovo:(OI)(CI)M /T迁移旧环境conda create --prefix D:\software\Anaconda3\envs\py312 --clone C:\Users\Lenovo\.conda\envs\py312测试conda activate D:\software\Anaconda3\envs\py312 where python python --version确认正常后删除旧环境conda activate base conda remove --prefix C:\Users\Lenovo\.conda\envs\py312 --all最后conda env list确认所有环境均位于D:\software\Anaconda3\envs即可。总结如果 Anaconda 明明安装在 D 盘而 Conda 虚拟环境却不断出现在C:\Users\用户名\.conda\envs不要第一时间认为 Anaconda 安装错误。重点检查conda info尤其是envs directories以及 D 盘目标目录是否具有写权限。如果出现PermissionError: [WinError 5] 拒绝访问首先考虑 Windows 权限而不是重新安装 Anaconda。对于已有环境也不要直接剪切整个环境目录优先使用conda create --prefix 新路径 --clone 旧路径完成迁移后再在 PyCharm 中手动指定新环境目录\python.exe即可。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。