2017-10-19 153 views
1

Python新手在这里。我遇到anaconda的许可问题。一切运行正常,但我似乎无法更新conda,创建新的环境或安装新的软件包。Conda更新权限错误

当我尝试更新(conda update conda)我得到它:

抓取包元数据.....发生意外错误。 请考虑在发布了以下信息 畅达GitHub的问题跟踪:

https://github.com/conda/conda/issues

当前畅达版本:

platform : osx-64 
conda version : 4.3.29 
conda is private : False 
conda-env version : 4.3.29 
conda-build version : not installed 
python version : 2.7.11.final.0 
requests version : 2.14.2 
root environment : /anaconda (writable) 
default environment : /anaconda 
envs directories : /anaconda/Users/Tina/.conda/envs 
package cache : /anaconda/Users/Tina/.conda/pkgs 
channel URLs : https://conda.anaconda.org/anaconda-fusion/osx-64 
       https://conda.anaconda.org/anaconda-fusion/noarch 
       https://repo.continuum.io/pkgs/main/osx-64 
       https://repo.continuum.io/pkgs/main/noarch 
       https://repo.continuum.io/pkgs/free/osx-64 
       https://repo.continuum.io/pkgs/free/noarch 
       https://repo.continuum.io/pkgs/r/osx-64 
       https://repo.continuum.io/pkgs/r/noarch 
       https://repo.continuum.io/pkgs/pro/osx-64 
       https://repo.continuum.io/pkgs/pro/noarch 
config file : /Users/Tina/.condarc 
netrc file : None 
offline mode : False 
user-agent : conda/4.3.29 requests/2.14.2 CPython/2.7.11 Darwin/15.5.0 OSX/10.11.5  
UID:GID : 501:20 

$ /anaconda/bin/conda update conda

Traceback (most recent call last): 
    File "/anaconda/lib/python2.7/site-packages/conda/exceptions.py", line 640, in conda_exception_handler 
    return_value = func(*args, **kwargs) 
    File "/anaconda/lib/python2.7/site-packages/conda/cli/main.py", line 140, in _main 
    exit_code = args.func(args, p) 
    File "/anaconda/lib/python2.7/site-packages/conda/cli/main_update.py", line 65, in execute 
    install(args, parser, 'update') 
    File "/anaconda/lib/python2.7/site-packages/conda/cli/install.py", line 231, in install 
    unknown=index_args['unknown'], prefix=prefix) 
    File "/anaconda/lib/python2.7/site-packages/conda/core/index.py", line 101, in get_index 
    index = fetch_index(channel_priority_map, use_cache=use_cache) 
    File "/anaconda/lib/python2.7/site-packages/conda/core/index.py", line 120, in fetch_index 
    repodatas = collect_all_repodata(use_cache, tasks) 
    File "/anaconda/lib/python2.7/site-packages/conda/core/repodata.py", line 75, in collect_all_repodata 
    repodatas = _collect_repodatas_serial(use_cache, tasks) 
    File "/anaconda/lib/python2.7/site-packages/conda/core/repodata.py", line 485, in _collect_repodatas_serial 
    for url, schan, pri in tasks] 
    File "/anaconda/lib/python2.7/site-packages/conda/core/repodata.py", line 115, in func 
    res = f(*args, **kwargs) 
    File "/anaconda/lib/python2.7/site-packages/conda/core/repodata.py", line 467, in fetch_repodata 
    touch(cache_path) 
    File "/anaconda/lib/python2.7/site-packages/conda/gateways/disk/update.py", line 64, in touch 
    utime(path, None) 
OSError: [Errno 13] Permission denied: '/anaconda/pkgs/cache/9cd9d6b5.json'``` 

我得到相同尝试时出错g安装seaborn或创建环境。我不愿意使用sudo因为我不想破坏东西。

我不明白这里发生了什么,所以任何帮助将不胜感激。

非常感谢; T

回答

1

您应该使用sudo为了写入某些文件到系统中。这非常好,不会破坏你的操作系统,除非你使用复杂和基本的软件包和安装程序(conda和python库非常好)。

sudo conda update conda不仅需要更新conda,还需要安装其他依赖项和软件包。

简而言之,安装程序会尝试将文件写入到它无法访问的特定目录(或修改目录中的文件)。与sudo你让他们这样做,因为你运行与附加priviliges。

+0

啊,那很简单:)谢谢EZ! –

2

您用于运行conda update conda的用户没有/anaconda/pkgs/cache/的写入权限。

如果你不想管理蟒蛇作为超级用户,我建议你创建一个新的用户组(即anaconda_admin)并运行:

sudo groupadd anaconda_admin 
sudo chown -R :anaconda_admin /anaconda 

然后,你将需要确保权限是这样的:

sudo chmod -R 775 /anaconda 

最后,你的用户是anaconda_admin组:

+0

谢谢Linford。我只是用sudo。有没有什么原因让人不应该以超级用户的身份改变事物? –

+0

@tinaK - 不是我所知道的(这是我所做的)。你的文章表明你不想成为root用户来管理软件包的安装/更新。您可能想要按照描述设置组的一个原因是您希望允许其他人在不给予root权限的情况下添加/更新软件包。 –