Conda更新的权限错误

时间:2017-10-19 08:51:22

标签: python permissions anaconda

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

当我尝试更新(conda update conda)时,我得到了:

  

获取包元数据.....发生了意外错误。     请考虑将以下信息发布到     conda GitHub问题跟踪器:

     

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

目前的conda版本:

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'```

尝试安装 seaborn 或创建环境时出现同样的错误。我不愿意使用 sudo ,因为我不想破坏它。

我不明白这里发生了什么,所以任何帮助都会受到高度赞赏。

非常感谢; Ť

3 个答案:

答案 0 :(得分:2)

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

如果您不想以超级用户身份管理anaconda,我建议您创建一个新用户组(即anaconda_admin)并运行:

sudo groupadd anaconda_admin
sudo chown -R :anaconda_admin /anaconda

然后,您需要确保权限类似于:

sudo chmod -R 775 /anaconda

最后,您的用户位于anaconda_admin组:

sudo adduser <<<your_user>>> anaconda_admin

答案 1 :(得分:1)

您应该使用 sudo 将某些文件写入系统。它非常好,不会破坏你的操作系统,除非你使用复杂的基础包和安装程序(conda和python库绝对没问题)。

sudo conda update conda不仅可以更新 conda ,还可以使用您希望安装的其他依赖项和软件包。

简而言之,安装程序会尝试将文件写入无法访问的某个目录(或修改目录中的文件)。使用sudo,您可以在使用附加权限运行时执行此操作。

答案 2 :(得分:1)

对于不能使用sudo的Windows用户:您必须以管理员身份打开conda控制台,方法是右键单击控制台图标,然后选择以管理员身份运行。然后conda更新conda应该可以正常工作。