Seite 1 von 1

import pickle und AttributeError: 'module'

Verfasst: Sonntag 20. Februar 2005, 15:39
von Gast
hallo

ich habe ein problem beim import von pickle.
in der shell ausgeführt bekomme ich folgende meldung:

Code: Alles auswählen

>>> import pickle
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.3/pickle.py", line 166, in ?
    __all__.extend([x for x in dir() if re.match("[A-Z][A-Z0-9_]+$",x)])
AttributeError: 'module' object has no attribute 'match'
wenn ich den Aufruf wiederhole, gelingt der import.
will ich nun ein script ausführen in dem pickle enthalten ist, bekomme ich die gleiche fehlermeldung, wobei es in diesem fall dabei bleibt.

auch beim ausführen von vim habe ich probleme zumindest ähnlicher art.
hier poste ich nur einen teil der fehlermeldung:

Code: Alles auswählen

$ vi geld.py
Fehler beim Ausführen von "/usr/share/vim/vim63/plugin/bike.vim":
Zeile  110:
...
 File "/usr/lib/python2.3/site-packages/bike/parsing/parserutils.py", line 4, in ?
    escapedQuotesRE = re.compile(r"(\\\\|\\\"|\\\')")
AttributeError: 'module' object has no attribute 'compile'
Drücken Sie die EINGABETASTE oder geben Sie einen Befehl ein
nachdem ich die eingabetaste drücke geht es dann weiter.

das betriebssystem ist debian sid. nach einem bug habe ich bereits gesucht (bug-tracking-system) habe dort aber nichts passendes gefunden.

soweit erstmal vielen dank [/code]

Verfasst: Sonntag 20. Februar 2005, 16:33
von atropin
obiger text stammt von mir, der login hatte nicht geklappt.

> File "/usr/lib/python2.3/pickle.py", line 166, in ?

ich habe mir vorerst geholfen, indem ich zeile 166 und 167 in pickle.py auskommentiert habe. damit komme ich zumindest erstmal zurecht, wobei das sicherlich nicht optimal ist und ich gerne eine "saubere" lösung hätte.

das problem mit dem vim besteht weiterhin genauso.

Verfasst: Sonntag 20. Februar 2005, 16:51
von Gast
In Deinem Namespace scheint ein Modul namens re zu existieren, das nichts mit dem eigentlichen Standardmodul gleichen Namens zu tun hat. Was erzeugt denn z.B. folgendes für eine Ausgabe?
>>> import re
>>> dir(re)

Verfasst: Sonntag 20. Februar 2005, 20:37
von Leonidas
Das der Import beim zweiten Mal zu klappen scheint ist kein Wunder, denn das wurde erst in Python 2.4 gefixt, dort würde es beide Male fehlschlagen. Das re Modul aus deinem Namespace sollte eigentlich keine Probleme machen, da es beim pickle Fehler um re im pickle Namespace geht, und das wird von dem re das du im global Namespace hast ja nicht beinflusst. Kann es sein, dasss du irgendwo eine Datei namens re.py hast, die aber nichts mit der re aus der Python Standardbibliothek zu tun hat?

Verfasst: Sonntag 20. Februar 2005, 22:41
von atropin
ups, ich hatte eine re.py benannte datei unter meinen übungs-scripten. nach dem entfernen funktioniert alles wieder wie gehabt.
thanx!