【问题标题】: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

【问题讨论】:

  • @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

标签: python yaml anaconda conda ruamel.yaml


【解决方案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】:

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

              1. 在我的主目录中卸载 conda(我使用了 this stack overflow solution)和 rm -rf miniconda3,fwiw。
              2. 使用 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

                        【讨论】:

                          猜你喜欢
                          • 2017-04-05
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-03-11
                          • 1970-01-01
                          • 2020-07-23
                          • 2012-12-07
                          • 2012-05-23
                          • 2019-07-29
                          相关资源
                          最近更新 更多