Seite 1 von 1

Modul Problem, nicht alle Funktionen werden geladen

Verfasst: Montag 21. Dezember 2009, 15:14
von Kinglui
Hallo zusammen,

ich importiere unter python2.6 das Modul lxml und bekomm folgende Namen angezeigt:

Code: Alles auswählen

>>> dir(lxml)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
Allerdings fehlen da etliche Namen, die erst dann auftauchen wenn ich diese explizit importiere:

Code: Alles auswählen

>>> import lxml.sax
>>> dir(lxml)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_elementpath', 'etree', 'sax']
Ein "from lxml import *" funktioniert leider auch nicht. Im sys.path ist soweit alles korrekt.

OS ist Debian Lenny. Python2.6 und das XML Modul ist selbst gebaut.
Vielleicht hat ja jemand eine Idee.

grüße

Steffen

Verfasst: Montag 21. Dezember 2009, 15:24
von Kinglui
Scheinbar hab ich mist beim kompilieren gebaut:

/usr/lib/python2.6/dist-packages/lxml/etree.so: undefined symbol: Py_InitModule4_64

Sieht fast so aus als stimmen da diverse Verlinkungen nicht.

Verfasst: Montag 21. Dezember 2009, 17:25
von lunar
Wie kommst Du darauf, dass es ein Fehler ist, wenn nicht alle Namen geladen sind?

Das ist nämlich gewollt, einzelne Bestandteile von lxml musst Du explizit importieren. Schließlich ist es nicht sinnvoll, alle Module zu laden, wenn der Nutzer nur eines benötigt.

Lies Dir doch nochmal durch, wie Pakete und Module bei Python funktionieren.

Verfasst: Montag 4. Januar 2010, 15:40
von Kinglui
Hallo,

sorry das ich etwas später antworte.

Wenn ich im python debug Modus das Module lade kommt der schon benannte undefined_symbol error. Und das finde ich nicht normal.
Interessanterweise kommt der gleiche Fehler auch mit python2.5 und lxml aus dem debian stable repo. Das ich manches nachladen muss weiss ich auch, danke. Aber ein "from lxml import *" importiert auch leider nix. Tollerweise lässt das ganze sich aber mit "import lxml.etree" im nicht debug Modus importieren. Daher bin etwas verwirrt. Naja ich werd mal testen ob swoeit alles geht.

grüße

Kinglui