0

编辑:因此,在从本地路径安装 Ruamel.yaml 后,将其卸载并重新安装它工作得很好。我不知道为什么重新安装它会改变任何东西,但是嘿,它有效。

请关闭这个问题。

原来的:

我想在PythonAnywhere中 为Python3.4安装Ruamel.Yaml模块。但是,如果我尝试使用PIP3.4,我会得到以下结果:

Could not find a version that satisfies the requirement ruamel.yaml (from versions: )
No matching distribution found for ruamel.yaml

为了解决这个问题,我下载了 ruamel.yaml-0.11.6.tar.gz标记为 Source 的文件),并使用-e标志将其与PIP3.4一起安装。显然,PIP3.4告诉我它是成功的,并且尝试重新安装包给我以下消息:

pip3.4 install --user ruamel.yaml
Requirement already satisfied (use--upgrade to upgrade): ruamel.yaml
in /home/<username>/dumpfolder_version3/ruamel.yaml-0.11.6

但是,当我尝试运行该库时,出现以下错误...

Traceback (most recent call last):        
File "/home/<username>/mailgun/configurar_menu.py", line 3, in <module>
import ruamel.yaml as yaml
ImportError: No module named 'ruamel'

你知道可能是什么问题吗?

如果我尝试重新安装 python 已经拥有的另一个包,我会收到此消息

pip3.4 install --user pyyaml
Requirement already satisfied (use --upgrade to upgrade): pyyaml
in /usr/local/lib/python3.4/dist-packages

这种差异可能是问题所在吗?

4

2 回答 2

1

可能存在许多问题,但不幸的是我无法访问 pythonanywhere,因此无法对其进行测试。但是,我确实有一些ruamel.yaml安装经验¹。

主要问题是您尝试以可编辑模式安装,但ruamel它是一个命名空间,pip install -e无法正确处理。不幸的是ruamel.yaml'ssetup.py当前没有捕捉到这一点(如果你尝试使用它python setup.py来安装它会捕捉到),因此不会警告或纠正它的行为。

您的 site-packages 目录可能已经搞砸了,因此pip无法恢复,但您可以尝试pip uninstall -y ruamel.yaml. 之后检查是否ruamel从您的lib/python3.4/site-packages目录中删除了所有以pip install ruamel.yaml*tar.gz. 如果您从头开始,后者也是您需要做的。

在 3.4 上正确安装后,如果您tree ruamel*site-packages目录中执行以下操作,您应该具有以下内容:

ruamel
└── yaml
    ├── comments.py
    ├── compat.py
    ├── composer.py
    ├── configobjwalker.py
    ├── constructor.py
    ├── cyaml.py
    ├── dumper.py
    ├── emitter.py
    ├── error.py
    ├── events.py
    ├── __init__.py
    ├── loader.py
    ├── main.py
    ├── nodes.py
    ├── parser_.py
    ├── __pycache__
    │   ├── comments.cpython-34.pyc
    │   ├── compat.cpython-34.pyc
    │   ├── composer.cpython-34.pyc
    │   ├── configobjwalker.cpython-34.pyc
    │   ├── constructor.cpython-34.pyc
    │   ├── cyaml.cpython-34.pyc
    │   ├── dumper.cpython-34.pyc
    │   ├── emitter.cpython-34.pyc
    │   ├── error.cpython-34.pyc
    │   ├── events.cpython-34.pyc
    │   ├── __init__.cpython-34.pyc
    │   ├── loader.cpython-34.pyc
    │   ├── main.cpython-34.pyc
    │   ├── nodes.cpython-34.pyc
    │   ├── parser_.cpython-34.pyc
    │   ├── reader.cpython-34.pyc
    │   ├── representer.cpython-34.pyc
    │   ├── resolver.cpython-34.pyc
    │   ├── scalarstring.cpython-34.pyc
    │   ├── scanner.cpython-34.pyc
    │   ├── serializer.cpython-34.pyc
    │   ├── tokens.cpython-34.pyc
    │   └── util.cpython-34.pyc
    ├── reader.py
    ├── representer.py
    ├── resolver.py
    ├── scalarstring.py
    ├── scanner.py
    ├── serializer.py
    ├── tokens.py
    └── util.py
ruamel.yaml-0.11.6.dist-info
├── DESCRIPTION.rst
├── INSTALLER
├── METADATA
├── metadata.json
├── namespace_packages.txt
├── RECORD
├── top_level.txt
└── WHEEL

¹我是作者

于 2016-03-02T14:17:09.007 回答
0

如上所述,这已经解决了。根据 Yamuel 自己的作者的说法,这可能是因为-e标志搞砸了一切。

于 2016-03-02T14:26:53.453 回答