Modul Problem, nicht alle Funktionen werden geladen

Probleme bei der Installation?
Antworten
Kinglui
User
Beiträge: 7
Registriert: Sonntag 18. Oktober 2009, 12:41

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
Kinglui
User
Beiträge: 7
Registriert: Sonntag 18. Oktober 2009, 12:41

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.
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.
Kinglui
User
Beiträge: 7
Registriert: Sonntag 18. Oktober 2009, 12:41

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
Antworten