安装Anaconda后,conda命令失败并显示“ImportError:no module named conda.cli”

时间:2013-11-06 23:44:37

标签: python linux anaconda

我最近安装了64位Linux版本的Anaconda(1.8.0-Linux-x86_64)。安装似乎工作正常:

$ python 
Python 2.7.5 |Continuum Analytics, Inc.| (default, Nov  4 2013, 15:30:26)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>
##No issues here 

但是,如果我尝试任何conda命令,我会收到错误:

$ conda info
Traceback (most recent call last):
  File "~/anaconda/bin/conda", line 3, in <module>
    from conda.cli import main
ImportError: No module named conda.cli

安装在我的用户目录(〜/ anaconda)下。我已经验证$ PATH包含〜/ anaconda / bin。 $ PYTHONPATH也设置为〜/ anaconda / lib。

对'conda'命令有什么问题的想法?我的搜索似乎没有显示任何其他人报告此错误。

6 个答案:

答案 0 :(得分:15)

当你安装它时,你错过了一个部分。当conda问你是否可以设置你的.bashrc文件时,你可能点击了NO。这是一个简单的解决方法:启动解释器并添加以下行:

export PATH=/home/add your username here/anaconda/bin:$PATH

现在在解释器中键入python,您将看到Anaconda 1.8.0或您拥有的任何版本。每次开始新的翻译时都必须这样做。

享受!

答案 1 :(得分:14)

注意

如果接受的答案无效,那么此答案可能会有所帮助。

原因

根据GitHub上的官方thread,当python版本发生更改时,会发生此问题。在我的情况下,最初的anaconda安装是带有python3.6的anaconda 3。然后我安装了一个新软件包,将python和其他一些软件包一起更新为python3.7。这破坏了Anaconda基本环境。

解决方案

适用于我的解决方案非常简单...重新安装anaconda。 我不知道这是否是最佳解决方案,但这对我有用。

  • 首先,我们需要删除旧的安装:
    rm -rf ~/anaconda3
    rm -rf ~/.condarc ~/.conda ~/.continuum
    
  • 然后,重新安装Anaconda。

  • 最后,使用以下命令更新所有软件包(包括conda本身):

    conda update --all
    

现在,您的蟒蛇是最新的。

答案 2 :(得分:4)

如果root用户安装了anaconda,则权限问题可能会导致ImportError: No module named 'conda.cli'错误。

像这样的东西

sudo chown -R [username] [anaconda_dir]

在这种情况下,

会有所帮助。

或者,可以将conda安装克隆到另一个位置,例如用户的主目录:

conda create -n [my_conda_root] --clone=[current_conda_dir]

但要使其工作,您至少需要读取和遍历权限。

答案 3 :(得分:2)

在Miniconda3 env中降级python时遇到了这个问题。在我的Dockerimage中。使用Miniconda3-4.5.11-Linux-x86_64.sh安装程序时,初始基本python版本是3.7.0。我想降级到3.6.9,并收到“ ImportError:没有名为conda.cli的模块”错误(都在同一层中以减小图像的大小)。

我改用Miniconda3-4.5.4-Linux-x86_64.sh安装程序(它将为您提供python == 3.6.5)并调用

conda install -y python==3.6.9

答案 4 :(得分:1)

我通过重新安装 anaconda 但保留 envs 文件夹来修复它。

因此,我将旧的 anaconda3 文件夹移至 anaconda3.old,我在同一位置重新安装了 anaconda3,并将 anaconda3.old/envs 文件夹的内容复制到 anaconda3/envs。然后它起作用了。

答案 5 :(得分:0)

我正在使用Anaconda,并且在某个地方找到了此解决方案:

更改以下内容:/opt/cloudera/parcels/Anaconda-5.2.0/bin/conda

#!/usr/bin/env python

# -*- coding: utf-8 -*-
import re
import sys

from conda.cli import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

#!/opt/cloudera/parcels/Anaconda/bin/python
# -*- coding: utf-8 -*-
import sys
# Before any more imports, leave cwd out of sys.path for internal 'conda shell.*' commands.
# see https://github.com/conda/conda/issues/6549
if len(sys.argv) > 1 and sys.argv[1].startswith('shell.') and sys.path and sys.path[0] == '':
    # The standard first entry in sys.path is an empty string,
    # and os.path.abspath('') expands to os.getcwd().
    del sys.path[0]

if __name__ == '__main__':
    from conda.cli import main
    sys.exit(main())