【发布时间】:2016-03-17 08:27:10
【问题描述】:
我在 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'
error 是位于 yaml 目录中的文件,但来自 yaml 的 __init__.py 确实使用绝对导入。我想这就是问题所在,但我不确定。
http://pyyaml.org/wiki/PyYAMLDocumentation#Python3support 是关于(假定的)Python 3 支持的简短路径,所以我不确定我是否以错误的方式使用它。
将 Python 3 与使用 yaml 的 python 脚本一起使用时,也会出现同样的问题(这就是我发现问题的方式)。
使用 Python 2.7 和 2.6 可以正常工作。
任何想法/建议如何让它发挥作用?
【问题讨论】:
-
你是如何安装 PyYAML 的?点子?设置.py?压缩包?你是用 sudo 权限安装的吗?
-
您的回溯暗示您实际上拥有旧版本的 PyYAML,因为
from error import *不是绝对导入(正如您所说的 PyYAML 3.11 使用)。 -
您安装了 2.x 并从 PyYAML 3.11 获得了 2.x 版本的源代码,如果您使用 3.x 安装,您将安装不同的源代码。
-
谢谢,好像是这个问题。
标签: python python-3.x pyyaml