根本原因是当前用户对conda envs目录或pip目标路径无写入权限;Windows常见于C:\Program Files\下安装导致权限受限,Linux/macOS则多因~/.conda/envs归属不匹配,应通过conda config --add envs_dirs重定向至用户可写路径或使用pip install --user避免全局写入。

conda create 报 PermissionError: [Errno 13] Permission denied
根本原因不是网络或包冲突,而是当前用户对 envs 目录没有写入权限。Windows 下常见于安装路径在 C:\ProgramData\Anaconda3 或 C:\Program Files\,Linux/macOS 下则多因 ~/.conda/envs 所属用户不匹配。
- 先确认环境目录位置:
conda config --show envs_dirs - 检查该路径的归属和权限:
ls -ld ~/.conda/envs(macOS/Linux)或icacls "C:\Users\YourName\.conda\envs"(Windows) - 若显示
ACCESS DENIED或所有者为SYSTEM/root,说明普通用户无权写入 - 不要直接改
Program Files权限——风险高且易被系统重置;推荐把envs_dirs指向用户可写路径,例如:conda config --add envs_dirs "D:\myenvs"
pip install 报 ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问
这不是 pip 本身的问题,而是它试图往受保护目录(如 E:\Anaconda3\Lib\site-packages)写文件时被拦截。尤其当 Anaconda 是管理员身份安装、而你用普通用户启动终端时,这种错配极常见。
- 优先用
--user安装:pip install --user numpy,包会装进%APPDATA%\Python\Python3x\site-packages(Windows)或~/.local/lib/python3.x/site-packages(Linux/macOS) - 避免全局安装:除非明确需要所有环境共用,否则一律在激活的虚拟环境中操作,
conda activate myenv后再pip install - 绝对不要在没确认权限的情况下对
anaconda3根目录执行icacls /grant——可能破坏conda元数据结构
Anaconda Prompt 启动就报 Access is denied
这通常是启动脚本 anaconda-prompt.bat 或其调用的 conda.bat 被 UAC 拦截,或所在目录权限异常。和 Python 包安装无关,是 shell 层面的执行权限问题。
- 右键快捷方式 → “属性” → “快捷方式”选项卡 → 点击“高级” → 勾选“以管理员身份运行”(仅临时应急)
- 更稳妥的做法:修改启动方式,用 PowerShell 替代 CMD,运行:
Start-Process powershell -Verb RunAs -ArgumentList "-NoExit", "-Command", "conda init powershell; conda activate base" - 如果
%ANACONDA_HOME%\condabin目录下文件全为只读属性(Windows 属性勾选了“只读”),需取消——右键文件夹 → 属性 → 取消勾选“只读”并应用到子文件
Linux/macOS 下 ./Miniconda3-*.sh: Permission denied
下载的安装脚本默认只有读写权限,没有执行权限。这是 Unix 文件系统的基本安全机制,不是 bug,也不是网络问题。
- 必须先赋权才能运行:
chmod +x Miniconda3-latest-Linux-x86_64.sh - 验证是否生效:
ls -l Miniconda3-*.sh,输出中应含x(如-rwxr-xr-x) - 如果只想给自己加权限(多用户服务器场景),用:
chmod u+x script.sh - 切勿跳过此步直接
bash Miniconda3-*.sh——虽然能绕过,但会掩盖权限模型认知盲区,后续其他脚本也会反复踩坑

















