2010-01-29 12 views
1

Le paquet lxml pour Python semble absolument cassé sur mon système. Je ne suis pas sûr du problème, car tous les fichiers sont en place, semble-t-il. Mon soupçon est que le problème est dans __init__.py, mais je n'ai pas assez de pratique avec le système pour faire un diagnostic précis ou résoudre le problème.lxml n'a essentiellement rien

Voici un code que je pense aidera à diagnostiquer le problème:

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

Comme je l'ai dit, je soupçonne que __init__.py contient le problème, mais je ne suis pas sûr à 100%.

En outre, j'utilise Linux Mint 8 - l'équivalent approximatif d'Ubuntu 9.10.

Merci d'avance.

+0

Quel tutoriel ou exemple suivez-vous? Pouvez-vous fournir le lien vers les documents que vous utilisiez pour voir comment cela fonctionnait? –

Répondre

10

Non, vous faites juste mal! Essayez, par exemple, from lxml import etree, et vous devriez pouvoir utiliser etree entièrement. import lxml - importation du package ! - Est-ce que pas vous donne un accès implicite à l'un des modules du paquet! -)

+0

Aha - là, c'est le frottement. Merci. – Reid

1

Je pense que tout le code lxml est en sous-paquetages. Essayez

from lxml import etree 
1

Il est parfaitement normal pour un fichier __init__.py avoir rien dans ce: http://docs.python.org/tutorial/modules.html#packages

Le fichier est juste là pour laisser Python savoir qu'il est un paquet et pas seulement un répertoire avec un tas de modules il.

Vous avez juste besoin d'importer les modules directement dans le paquet.

from lxml import etree, html 

etc ...