1

Python的lxml包似乎在我的系统上完全损坏了。我不确定这个问题,因为所有文件似乎都已到位。我怀疑问题出在 中__init__.py,但我没有足够的系统练习来做出准确的诊断或解决问题。

这是一些我认为有助于诊断问题的代码:

Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>> dir(lxml)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
>>> print lxml.__path__
['/usr/lib/python2.6/dist-packages/lxml']
>>> c = open("/usr/lib/python2.6/dist-packages/lxml/__init__.py", "r")
>>> for line in c:
...     print line
... 
# this is a package



>>> c.close()
>>> import os
>>> os.system("ls /usr/lib/python2.6/dist-packages/lxml/")
builder.py      ElementInclude.py   __init__.py    sax.pyc
builder.pyc     ElementInclude.pyc  __init__.pyc       usedoctest.py
cssselect.py        _elementpath.py objectify.so       usedoctest.pyc
cssselect.pyc       _elementpath.pyc    pyclasslookup.py
doctestcompare.py   etree.so        pyclasslookup.pyc
doctestcompare.pyc  html        sax.py
0
>>> 

就像我说的,我的怀疑是__init__.py包含问题,但我不是 100% 确定。

另外,我使用的是 Linux Mint 8 - 大致相当于 Ubuntu 9.10。

提前致谢。

4

3 回答 3

10

不,你只是做错了!试试,例如,,from lxml import etree你应该可以etree完全使用。 import lxml-- 导入!-- 不会您隐式访问任何包的模块!-)

于 2010-01-29T03:27:03.567 回答
1

我认为所有 lxml 代码都在子包中。尝试

from lxml import etree
于 2010-01-29T03:26:23.477 回答
1

__init__.py文件中没有任何内容是完全正常的:http: //docs.python.org/tutorial/modules.html#packages

该文件只是为了让 Python 知道它是一个包,而不仅仅是一个包含一堆模块的目录。

您只需要直接导入包内的模块即可。

from lxml import etree, html

ETC...

于 2010-01-29T03:26:43.193 回答