更新Anaconda失败:环境不可写错误

A. *_*him 13 anaconda

我正在尝试使用来更新Anaconda及其软件包conda update --name root conda,但是每次都会失败。

错误消息:EnvironmentNotWritableError:当前用户没有对目标环境的写权限。环境位置:C:\ ProgramData \ Anaconda3

环境位置:C:\ProgramData\Anaconda3。我取代了rootbase,我还是得到同样的错误。

有什么帮助吗?

Aks*_*kar 18

以管理员身份运行来启动命令提示符

  • @hamedbaziyad是的,它可能被认为是解决方法,并且可能会解决您的问题,但是在许多情况下不需要使用超级用户权限运行conda,并且在这些情况下可能不是最好的做法。使用超级用户权限运行命令可能会比没有超级用户权限造成更大的损害,因此最好避免超级用户权限。此外,用户可能没有超级用户权限,但仍想更新 conda。 (6认同)
  • 在 Windows 上,如果您尝试将软件包安装到“base”环境中(安装到“C:\ProgramData\Anaconda3”),则需要管理员访问权限。如果您首先创建一个环境(应安装在 .conda\envs 下的用户目录中)并激活它,则您不再需要该环境的管理员权限。创建环境后不要忘记激活它。 (5认同)
  • 它在 Windows 10 上对我有用。我还没有在 Mac 上尝试过,但我会尝试运行命令 sudo conda update --name root conda。 (3认同)
  • 这是不正确的。至少在Linux / Mac OS下,conda不应要求具有超级用户权限。 (2认同)
  • 这对我来说效果很好。您能解释一下为什么您的解决方案有效吗? (2认同)

小智 16

打开此文件夹“C:\ProgramData\”并右键单击“\Anaconda3”。转到属性-> 安全性并选中每个用户的所有框。这对我有用。

  • @Anthony,你必须成为管理员才能进行这些更改。 (2认同)
  • 有效的简单解决方案(如果您是管理员) (2认同)

ben*_*cht 13

我过去通过 OS X 上的系统安装程序安装了 anaconda,它创建了一个~/.conda/environments.txt由 root 拥有的。Conda 无法修改此文件,因此出现错误。

为了解决这个问题,我将该目录和文件的所有权更改为我的用户名:

sudo chown -R $USER ~/.conda
Run Code Online (Sandbox Code Playgroud)


lum*_*ric 11

如果在Linux下使用sudo运行conda时遇到此错误,则可能是错误#7267

通过sudo以非root用户身份登录时,例如:

sudo -u myuser -i
Run Code Online (Sandbox Code Playgroud)

conda似乎假定它以root身份运行并引发错误。

唯一已知的解决方法似乎是:将以下行添加到您的~/.bashrc

unset SUDO_UID SUDO_GID SUDO_USER
Run Code Online (Sandbox Code Playgroud)

...或通过在运行conda之前以另一种方式运行该行来取消设置ENV变量。

如果您错误地以root用户身份/通过sudo安装了anaconda / miniconda,这也可能导致相同的错误,那么您可能需要执行以下操作:

sudo chown -R username /path/to/anaconda3
Run Code Online (Sandbox Code Playgroud)

经conda 4.6.14测试。


小智 9

我也遇到了同样的问题,但是在Windows上,单击开始按钮->右键单击Anaconda Powershell Prompt,然后在commad提示符下执行命令conda update -n base -c defaults conda,选择以管理员身份运行。您的anaconda应该更新而没有与管理员相关的错误。


Sus*_*nth 8

如果您在Linux中遇到此问题,则常见的原因之一可能是文件夹“ anaconda 3”或“ anaconda 2”具有root所有权。这样可以防止其他用户写入该文件夹。可以通过运行以下命令将文件夹的所有权从根目录更改为“ USER”来解决:

sudo chown -R $USER:$USER anaconda 3
Run Code Online (Sandbox Code Playgroud)

要么 sudo chown -R $USER:$USER <path of anaconda 3/2 folder>

注意:如何确定文件夹是否具有root所有权?-相应文件夹的右上角将有一个锁定符号。或者右键单击文件夹->属性,您将能够看到所有者的详细信息

-R参数允许$ USER访问文件夹anaconda 3或任何相应文件夹中的所有文件夹和文件。它代表“递归”。

  • 为我工作。但是,我认为您还需要更改 ~/.conda 的所有权,因为它包含例如需要更新的environments.txt。 (3认同)
  • sudo chown -R $USER:$GROUP &lt;anaconda 3/2 文件夹的路径&gt; (3认同)

bas*_*flp 8

我有同样的问题,base环境在C:\ProgramData\Anaconda3. 安装 Anaconda 时就是这种情况for all users

作为解决方案,我重新安装了 Anaconda just for me,现在base环境在\AppData\Local\Continuum\anaconda3. 现在可以在conda update没有管理员权限的情况下进行更新。


小智 6

通常在 Windows 上,以管理员身份运行命令提示符是有效的。但是,如果您不想每次都这样做,请在 Anaconda3 目录上指定您的用户(或所有用户)的完全控制权限。请注意,为所有用户指定它允许其他用户安装他们自己的包并修改内容。

权限示例

  • 唯一对我有用的 Windows 解决方案。 (2认同)