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 的模块'的主要内容,如果未能解决你的问题,请参考以下文章
pyqtgraph - ImportError:没有名为 pyqtgraph 的模块
cx_freeze ImportError:没有名为“idna”的模块