PyYAML与Python 3.x

Mat*_*ohr 3 python pyyaml python-3.x

我在Python 3.x中使用yaml(PyYAML 3.11)库时遇到问题。当我打电话时import yaml,出现以下错误:

Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import yaml
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mlohr/python-libs/yaml/__init__.py", line 2, in <module>
    from error import *
ImportError: No module named 'error'
Run Code Online (Sandbox Code Playgroud)

error是位于yaml目录中的文件,但__init__.pyfrom yaml确实使用绝对导入。我想这就是问题所在,但我不确定。

http://pyyaml.org/wiki/PyYAMLDocumentation#Python3support中,提供了有关(应该)Python 3支持的简短路径,所以我不确定是否使用了错误的方式。

将Python 3与使用yaml的python脚本一起使用时,会发生相同的问题(这就是我发现问题的方式)。

使用Python 2.7和2.6可以正常工作。

任何想法/建议如何使它起作用?

Ilj*_*ilä 5

看来您PyYAML毕竟是在使用旧版本的,或者正在使用Python3的Python2安装(PyYAML其他答案中所建议的那样),因为在回溯中我们看到了

from error import *
Run Code Online (Sandbox Code Playgroud)

这不是绝对的导入。您应该升级,PyYAML在您的环境中重新安装Python3源,或者为Python3软件包创建一个新环境。