fehler beim spielen mit __path__

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Mittwoch 11. Oktober 2006, 20:27

hi!
ich hatte mir mal snakesql angesehen. das funktioniert bei mir soweit ganz gut,
es hat nur einen haken: sobald man das in einem cgi-skript ausführt,
kommt eine unsinnige fehlermeldung. ich habe bereits mit dem entwickler gesprochen, der wusste aber auch nicht weiter, konnte aber eine vermutung anstellen:

Code: Alles auswählen

path = os.path.join(__path__[0],'external')

if path not in sys.path:

    sys.path.insert(0,path)

path = os.path.join(__path__[0])

if path not in sys.path:

    sys.path.insert(0,path)

if sys.version_info < (2,3):

    path = os.path.join(__path__[0],'external','compat','2_3')

    if path not in sys.path:

        sys.path.insert(0,path)

del path
hier spielt er mit der variable herum, um darauf seine eigenen skripte zu importieren. die in einem unterordner liegen.
die fehlermeldung lautet wie folgt:
localhost - - [11/Oct/2006 21:23:44] "GET /cgi-bin/build.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/home/murph/own_project/internet/cgi-bin/build.py", line 17, in ?
import pystrategy_modules.SnakeSQL as snakesql
File "/usr/lib/python2.4/site-packages/PIL/__init__.py", line 74, in ?

File "/usr/lib/python2.4/os.py", line 133, in ?
from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep,
ImportError: No module named path
localhost - - [11/Oct/2006 21:23:45] CGI script exit status 0x100
sie wird verwunderlicherweise nicht durch cgitb als webseite dargestellt.
und ich kann versichern, dass PILs init keine zeile 74 hat, nicht importiert wird, ebenso wie os, dass auch keine (explizite?) anbindung an den skript hat.

kann wer weiterhelfen?


//edit:
hab mal die entscheidene stelle umgeschrieben, sodass die variable __path__ nicht mehr verändert wird.

habe nun eine andere fehlermeldung:
localhost - - [11/Oct/2006 21:28:06] "GET /cgi-bin/build.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/home/murph/own_project/internet/cgi-bin/build.py", line 17, in ?
import pystrategy_modules.SnakeSQL as snakesql
File "/home/murph/own_project/internet/cgi-bin/pystrategy_modules/SnakeSQL/__init__.py", line 74, in ?
import sys, os.path
File "/usr/lib/python2.4/os.py", line 133, in ?
from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep,
ImportError: No module named path
localhost - - [11/Oct/2006 21:28:06] CGI script exit status 0x100

Code: Alles auswählen

from error import *
import external.lockdbm as lockdbm
http://www.cs.unm.edu/~dlchao/flake/doom/
BlackJack

Mittwoch 11. Oktober 2006, 22:29

Kann es sein, dass durch das Verändern von `sys.path` ein `os` Modul oder Package *vor* das `os` Modul aus der Standardbibliothek gerät? Und das dieses `os` eben kein `path` Modul besitzt?
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Donnerstag 12. Oktober 2006, 16:00

also es gibt kein modul, das os heißt,
daher kann die fehlermeldung (eigentlich) nur vom orginal kommen.
aber ich kann mal ausprobieren, ob es was bringt, die neuen pfade nicht an den anfang zu stellen sondern weiter in die mitte...bin nur gerade an einem anderen rechner, werde dann nochmal posten.
http://www.cs.unm.edu/~dlchao/flake/doom/
Antworten