【发布时间】:2016-07-12 21:22:42
【问题描述】:
我在 Mac OS 10.9 上运行 Python 3.5.2
我尝试更新 conda
conda update conda
但它给了我这个错误
Traceback (most recent call last):
File "/Users/cd/anaconda3/bin/conda", line 6, in <module>
sys.exit(main())
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/cli/main.py", line 139, in main
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/cli/main.py", line 146, in args_func
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/cli/main_update.py", line 64, in execute
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/cli/install.py", line 424, in install
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/plan.py", line 539, in execute_actions
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/instructions.py", line 149, in execute_instructions
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/instructions.py", line 92, in LINK_CMD
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/instructions.py", line 88, in link
File "/Users/cd/anaconda3/lib/python3.5/site-packages/conda/install.py", line 634, in link
File "/Users/cd/anaconda3/lib/python3.5/os.py", line 241, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/Users/cd/anaconda3/etc/fish/conf.d’
我四处搜索并认为问题在于我需要使用我的用户 chown 文件夹(在我的情况下是“cd”):
sudo chown -R cd anaconda3
然后我尝试了conda update conda,但现在它给出了不同的错误:
zsh: /Users/cd/anaconda3/bin/conda: bad interpreter: /opt/anaconda1anaconda2anaconda3/bin/python3: no such file or directory
我尝试将chown放回根目录:
sudo chown -R root anaconda3
但是当我尝试conda update conda 时,它给了我同样的“错误解释器”错误。
where conda 给/Users/cd/anaconda3/bin/conda
我不知道问题是否出在chowncommand,但如果您需要更多详细信息,请告诉我!
【问题讨论】:
-
您安装了多个 anaconda。 1 在
/opt中,另一个在您的主目录中。我猜root拥有/opt/anaconda*和cd在您的主目录中拥有 anaconda。修复你的PATH,这样你就不会使用错误的anaconda,然后你就可以更新你的安装了。 -
谢谢,但
opt中没有名为anaconda*的文件夹,echo $PATH中也没有提及它 -
/Users/cd/anaconda3/bin/conda中的 shebang 是#!/opt/anaconda1anaconda2anaconda3/bin/python3,如您发布的错误消息中所示。这就是让我认为您安装了多个 anaconda 的原因。 -
啊,我明白了。我认为 conda 做了一个自我毁灭的举动,并且由于某种原因在更新时对其 shebang 进行了更改,但我不明白为什么......
-
当 conda 更新文件时,shebang 总是会更新。没有静态的shebang。如果另一个用户更新他自己的副本,它将具有与您更新副本时不同的 shebang。发生这种情况是因为您应该以自己的身份运行更新时以 root 身份运行更新。考虑
user1和user2。user1的副本的 shebang 将是#!/Users/user1/anaconda3/bin/python3而user2的 shebang 将是#!/Users/user2/anaconda3/bin/python3假设他们都选择 anaconda3 作为安装目录并且都选择了 python3。