开发者

lxml has essentially nothing

开发者 https://www.devze.com 2022-12-18 05:51 出处:网络
The lxml package for Python seems to absolutely broken on my system. I am not sure of the problem, as all of the files are in place, it seems. My suspicion is that the problem is in __init__.py, but I

The lxml package for Python seems to absolutely broken on my system. I am not sure of the problem, as all of the files are in place, it seems. My suspicion is that the problem is in __init__.py, but I don't have enough practice with the system to make an accurate diagnosis or fix the problem.

Here is some code that I think will help diagnose the problem:

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
>>> 

Like I said, my suspicion is that __init__.py contains the problem, but I'm not 100% sure.

Also, I'm using Linux Mint 8 - the rough equivalent of Ubuntu 9.10.

Thanks in advance.


No, you're just doing it wrong! Try, e.g., from lxml import etree, and you should be able to use etree fully. import lxml -- importing the package! -- does not give you implicit access to any of the package's modules!-)


I think all the lxml code is in subpackages. Try

from lxml import etree


It's perfectly normal for a __init__.py file to have nothing in it: http://docs.python.org/tutorial/modules.html#packages

The file is just there to let Python know that it's a package and not just a directory with a bunch of modules in it.

You just need to import the modules inside the package directly.

from lxml import etree, html

etc...

0

精彩评论

暂无评论...
验证码 换一张
取 消