gpt4 book ai didi

python - Windows 上的 lxml 错误 - AttributeError : module 'lxml' has no attribute 'etree'

转载 作者:太空狗 更新时间:2023-10-30 00:01:43 29 4
gpt4 key购买 nike

我在 Windows 32 位上使用 Anaconda v4.2 和 Python 3.5,并想使用 lxml etree。我的 Anaconda 发行版包括 lxml 3.6.4,但我的 IDE(PyCharm,尽管我在使用 Jupyter Notebook 运行代码时遇到了同样的错误)可以看到的唯一 lxml 函数是 get_include()。以下代码:

import lxml
full_xml_tree = lxml.etree.parse('myfile.xml')

只是给我错误:

AttributeError: module 'lxml' has no attribute 'etree'

我还尝试安装适用于 Windows 的 VisualC++ 编译器,但这没有任何区别。我尝试在命令行上使用 conda 重新安装 lxml,同样没有改变我的错误。我错过了什么?看起来 lxml.get_include() 函数没有找到任何要包含的文件,而且我真的不明白 etree.cp35-win32.pyd 文件(我假设它包含编译的 etree 代码??)应该与 lxml 包相关联。非常感谢任何帮助!

凯茜

最佳答案

etree (ElementTree) 子包的导入方式有点奇怪。

您必须显式导入子包才能使用:

import lxml.etree
full_xml_tree = lxml.etree.parse('myfile.xml')

实现您想要做的事情的推荐方法是导入 ElementTree 模块:

import xml.etree.ElementTree as ET
tree = ET.parse('myfile.xml')

参见:https://docs.python.org/3.6/library/xml.etree.elementtree.html

为什么会这样?

想象一个目录结构如下的包:

test_pkg/__init__.py
test_pkg/shown_module.py
test_pkg/hidden_module.py

__init__.py 包含以下内容:

from . import shown_module

使用这个包你可以直接使用shown_module:

>>> import test_pkg
>>> test_pkg.shown_module
<module 'test_pkg.shown_module' from '.../test_pkg/shown_module.py'>

但是hidden_​​module不能直接使用:

>>> test_pkg.hidden_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'test_pkg' has no attribute 'hidden_module'

但是如果导入就可以使用:

>>> import test_pkg.hidden_module
>>> test_pkg.hidden_module
<module 'test_pkg.hidden_module' from '.../test_pkg/hidden_module.py'>

但是,我不知道为什么ElementTree是“隐藏”的。

关于python - Windows 上的 lxml 错误 - AttributeError : module 'lxml' has no attribute 'etree' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066480/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com