我最近安装了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'命令有什么问题的想法?我的搜索似乎没有显示任何其他人报告此错误。
答案 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())