无法再从ElementTree导入

时间:2014-03-11 10:47:55

标签: import pydev elementtree python-import xml.etree

多年来,我的代码中都有以下导入内容:

from etree.ElementTree import fromstring, parse, VERSION

今天我在移动(在Eclipse / pyDev中)一些不相关的源文件到另一个文件夹时犯了一个错误。该文件夹不是一个包,它花了我一些清理,重建和del * .pyc-s再次找到它们。这一部分已经解决了,但是现在,上面的导入打破了“无法进口......”。当我删除etree-prefix时,导入被解析,但在运行时我得到

from ElementTree import fromstring, parse, VERSION
File "C:\Program Files\Python\EPD-7.3-2x64\Lib\xml\etree\ElementTree.py", line 127, in <module>
from . import ElementPath
ValueError: Attempted relative import in non-package

出了什么问题......?

1 个答案:

答案 0 :(得分:1)

你不应该这样做。

导入通常为from xml.etree.ElementTree import ...;顶级包名称为xml.etree,而不是etree

看起来好像是将xml.etree包添加到Python sys.path模块搜索路径中。 不要那样做。从C:\Program Files\Python\EPD-7.3-2x64\Lib\xml\etree(或sys.path环境变量)中删除PYTHONPATH,然后从正确的顶级包名称导入。