Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块'

Posted

技术标签:

【中文标题】Conda \'ImportError:没有名为 ruamel.yaml.comments 的模块\'【英文标题】:Conda 'ImportError: No module named ruamel.yaml.comments'Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块' 【发布时间】:2017-05-13 10:22:41 【问题描述】:

当我用它运行任何命令时,Conda 会出错。

Traceback (most recent call last):
  File "/usr/local/bin/conda", line 7, in <module>
    from conda.cli.main import main
  File "/usr/local/lib/python2.7/dist-packages/conda/cli/__init__.py", line 8, in <module>
    from .main import main  # NOQA
  File "/usr/local/lib/python2.7/dist-packages/conda/cli/main.py", line 46, in <module>
    from ..base.context import context
  File "/usr/local/lib/python2.7/dist-packages/conda/base/context.py", line 18, in <module>
    from ..common.configuration import (Configuration, MapParameter, PrimitiveParameter,
  File "/usr/local/lib/python2.7/dist-packages/conda/common/configuration.py", line 40, in <module>
    from ruamel.yaml.comments import CommentedSeq, CommentedMap  # pragma: no cover
ImportError: No module named ruamel.yaml.comments

【问题讨论】:

检查是否有帮助:***.com/questions/40733906/… @MYGz 已经尝试过了。 是否可以在系统中递归搜索 ruamel 包是否存在? 在python库文件夹下能找到文件夹结构ruamel/yaml/comments.py吗? 我只在“home/nipun/anaconda3/pkgs/ruamel_yaml-0.11.14-py35_0/lib/python3.5/site-packages/ruamel_yaml”位置找到了cmets.py 【参考方案1】:

模块ruamel.yaml.comments 通常会从site-packages/ruamel/yaml/comments.py 加载,而不是从site-packages/ruamel_yaml/comments.py 加载

Conda 似乎在正确支持命名空间 (ruamel.) 方面存在问题,我只能将其归因于(尚未)完全兼容 pip。尽管 "namespaces are a honking good idea" 和包命名空间已经存在很多年了。

假设您可以使用 pip 扩展“conda”安装,您可以尝试通过以下方式正常安装 ruamel.yaml

 pip install ruamel_yaml==0.11.14

我通常不会推荐这样一个旧版本,但它更有可能与 conda 内部使用的版本结合使用。

另一种方法是切换到不使用 conda 的 python 和 pip,这样您就可以使用 PyPI 的最新版本的软件。

【讨论】:

你们公司和ruamel package有关系吗? :) @MYGz 是的,Ruamel bvba 是 100% 赞助开发的。由于我没有在这里宣传我自己的软件包来解决一些尚未涉及ruamel.yaml 的问题,因此我没有考虑加入免责声明。 不错。我只是好奇而已。此问题与多次安装 anaconda 有关。他可能在安装完整包之前先安装了 miniconda。 @MYGz 我回答了,然后查看了 cmets 并看到了另一个问题的链接。不知道为什么他们的安装会混淆。编写适用于 Python 文件的 Python 程序,无论是否在某个包含目录的 Python 文件中,如果不从标准库或路径中的其他安装中加载,可能会很痛苦。【参考方案2】:

试试pip install ruamel.yaml

它对我有用。

【讨论】:

【参考方案3】:

试试conda install ruamel.yaml ... pip 对我不起作用

【讨论】:

【参考方案4】:

我进入了这个文件:

/anaconda2/lib/python2.7/site-packages/dateparser/utils/__init__.py

编辑了这一行:

import ruamel.yaml as yaml 

阅读

import ruamel_yaml as yaml 

将点改为下划线对我有用....我希望它对你有用。

【讨论】:

【参考方案5】:

试试sudo pip install ruamel_yaml

【讨论】:

【参考方案6】:

转到 anaconda3\lib\site-packages\rpcq_base.py 并更改第 22 行:

from ruamel import yaml

from ruamel_yaml as yaml

【讨论】:

【参考方案7】:

上面的答案对我不起作用。我必须按照 conda 文档here 中的描述重新安装核心 conda 组件。复制粘贴如下:

问题:我的 conda 坏了,我想在不破坏当前安装的情况下修复它 我收到一个 conda 错误,想重新安装 Miniconda 来修复它,但是当我尝试时,它给了我一个错误,即 Miniconda(或 Anaconda)已经安装并且不会让我继续。我想强制安装。

解决方案:使用 -f(强制)选项安装 Miniconda 从 Miniconda 下载页面使用 force 或 -f 选项下载并安装适用于您的计算机操作系统的 Miniconda,如下所示:

bash Miniconda3-latest-MacOSX-x86_64.sh -f

注意:请为您的文件替换适当的文件名和版本 操作系统。

注意:请确保安装到与您的安装位置相同的安装位置 现有安装,因此它会覆盖核心 conda 文件并且不会 在新文件夹中安装副本。

【讨论】:

【参考方案8】:

这可能不是一个受欢迎的答案,但经过数小时的故障排除后,它终于帮助了我:

    在我的主目录中卸载 conda(我使用了 this stack overflow solution)和 rm -rf miniconda3,fwiw。 使用 data camp's tutorial 重新安装了 conda。

在多次撞头之后,没有其他解决方案对我有用。

【讨论】:

【参考方案9】:

对于python3使用

pip3 install ruamel_yaml

如果pip3没有安装,请先尝试

sudo apt install python3-pip 

【讨论】:

【参考方案10】:

对我来说,这是一个conda/pip 错误。我试图通过 pip 安装(在我的情况下为cwltool)。 它成功完成,但是运行任何命令都会给我上面的错误。

ImportError: No module named ruamel.yaml.

事实证明,pip 二进制文件不是我的 conda env 的一部分,而是将cwltool 安装到一个完全独立的位置。

为了解决这个问题,我完成了以下操作:

conda activate <env I want to install cwltool into>

conda install -y pip

# Run 'rehash' now if you're using zsh to ensure you're using the right pip

pip install cwltool

cwltool -h

【讨论】:

【参考方案11】:

要补充@user612161 所说的内容,请转到需要 ruamel.yaml 的父模块目录(在本例中为dateparser):

cd anaconda2/lib/python2.7/site-packages/dateparser

并通过以下命令(Linux)将所有出现的 ruamel.yaml 更改为 ruamel_yaml:

find . -name '*.py' | xargs sed -i 's/ruamel.yaml/ruamel_yaml/g'

【讨论】:

【参考方案12】:

快速简便的方法是在升级时忽略之前安装的版本

 pip install --ignore-installed ruamel_yaml==0.17.4

【讨论】:

【参考方案13】:

这对我有用:

pip install --upgrade ruamel.yaml --ignore-installed ruamel.yaml

来自 matsci.org 的回答 https://matsci.org/t/modulenotfounderror-no-module-named-ruamel/36183

【讨论】:

以上是关于Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块'的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为 solcx 的模块

ImportError:没有名为 utils 的模块

pyqtgraph - ImportError:没有名为 pyqtgraph 的模块

cx_freeze ImportError:没有名为“idna”的模块

如何运行位于子目录中的脚本? ImportError:没有名为x的模块

“没有名为 PyPDF2 的模块”错误