
Hallo Joe, hallo Pythoneers (!!!)

Ich habe die Lösung des Problems!
Vorher möchte ich zu diesem Thread etwas sagen:
Das hier geschilderte Problem basiert eher weniger auf Programmier- oder Konfigurationsfehlern, als viel mehr auf "dem" Windows-Python-Problem, welches ich hier wie folgt darstellen will:
Python ist (meiner Meinung und - wie ich gelesen habe - von vielen anderen) für alle Betriebssysteme wie geschaffen,
außer für die Windoof-Reihe (also Windows 9x, Me, NT 4, 2k, XP und 2003).
Ich habe unter "Eigene Dateien" (Windows XP) einen Ordner mit dem Namen 'python' erstellt und alle meine Progrämmschen da abgespeichert. Alles lief wunderbar, bis ich den "selbstgebauten" Python-Http-Server mit CGI Support gepythont habe. Ab da fing Python an mich zu nerven(!), denn es lief einfach nicht - trotz genauer Befolgung der Dokumentation, die mir vorlag.
Joe möchte ich hier ganz besonders meinen Dank aussprechen, denn durch Ihn bin ich auf den Fehler gekommen. Joe hat mir klargemacht, dass das Problem garnicht an den Zugriffsrechten des 'cgi-bin'-Ordners lag/liegt, wie auf der offiziellen Docuseite und in der Windoof-Python-Hilfe behauptet wird:
Note that CGI scripts will be run with UID of user nobody, for security reasons. Problems with the CGI script will be translated to error 403.
Der Python-Http-CGI-Server verbindet alles, was sich im
'cgi-bin'-Ordner, selbst den Ordner 'cgi-bin', mit cgi - mit anderen Worten:
Der Server behandelt das cgi-bin-Verzeichnis, sowie deren Inhalt, also
*.py-Files, wie Python-Script-Programme. Ich habe dies noch dadurch
bestetigt bekommen, als ich in dem 'cgi-bin'-Ordner eine hello.html
mit Inhalt erstellt habe und diese genau die selbe Fehlermeldung
verursacht hat, wie der Klick auf den 'cgi-bin'-Ordner aus http:\\localhost:80\ heraus : den Fehler 403 (!)
(siehe ganz oben in Fehlerbeschreibung).
Joe's zweite Antwort war natürlich ausschlaggebend, denn es gab
keine weiteren Möglichkeiten, wo sich ein Fehler hätte einschleichen
können. Selbst laut Docu hab ich 'alles' richtig gemacht.
print 'Content-Type: text/html\n'
muss einfach
rein. Es funzte einfach nicht!, trotz der Korrektheit von Joe's Hinweis!
Plötzlich viel mir was auf, als ich sauer den Web-Browser weggeklickt habe:
Im DOS-Eingabeaufforderungs-Fenster laß ich folgende (letzten) Zeilen:
localhost - - [23/Sep/2004 10:40:24] CGI script exit status 0x2
localhost - - [23/Sep/2004 10:40:27] "GET /cgi-bin/hello.py HTTP/1.1" 200 -
localhost - - [23/Sep/2004 10:40:27] command: c:\python23\python.exe -u C:\Dokum
ente und Einstellungen\root\Eigene Dateien\python\http_python_server\cgi-bin\hel
lo.py ""
localhost - - [23/Sep/2004 10:40:27] c:\python23\python.exe: can't open file 'C:
\Dokumente'
localhost - - [23/Sep/2004 10:40:27] CGI script exit status 0x2
localhost - - [23/Sep/2004 10:42:00] "GET /cgi-bin/hello.py HTTP/1.1" 200 -
localhost - - [23/Sep/2004 10:42:00] command: c:\python23\python.exe -u C:\Dokum
ente und Einstellungen\root\Eigene Dateien\python\http_python_server\cgi-bin\hel
lo.py ""
localhost - - [23/Sep/2004 10:42:01] c:\python23\python.exe: can't open file 'C:
\Dokumente'
localhost - - [23/Sep/2004 10:42:01] CGI script exit status 0x2
Das ist natürlich _NUR_ ein kleiner Ausschnitt aus dem Fenster!

Ich will euch den Rest mal ersparre

Fällt Euch was auf
localhost - - [23/Sep/2004 10:42:01] c:\python23\python.exe: can't open file 'C:
\Dokumente'
Was ist also die ganze Zeit über passiert?
Ganz einfach:
Der Browser konnte auf Windoofs tolles Verzeichnis "Dokumente und
Einstellungen" nicht zugreifen, aber es lag nicht an den Zugriffsrechten,
sondern einfach daran, dass die Verzeichnisbezeichnung von BLANKS
getrennt wird und der Python-Server das nicht rafft, weil das eben
unter Windows und NTFS nicht einfach _NUR_ ein Blank ist, sondern ein %20! Leute, die sich mit HTML auskennen und mit Windows
und Linux die Pfadstory erlebt haben wissen wovon ich rede:
Beispiel/Hinweis:
#file:///C:/Dokumente%20und%20Einstellungen/root/Eigene%20Dateien/python/001_hello_world.py
Es ist das

VERDAMMTE(!) %20-Problem!
Meine Lösung:
Ich habe einen Ordner 'dev' in 'C:\' angelegt. Darunter noch einen
'python' und habe die Dateien da reinkopiert (also C:\dev\python)
und siehe da: ES FUNKTIONIERT!!!
Eine andere mögliche Lösung wäre es, den Server irgendwie von Hand auf
das 'C:\Dokumente und Einstellungen\root\Eigene Dateien\python'-
Verzeichnis einzustellen, also
C:\Dokumente%20und%20Einstellungen\root\Eigene%20Dateien\python
Vielleicht probiert das ja einer von euch aus!
Ich hoffe, dass dieser Thread einigen anderen Windows-Usern, die
mit Python und dem Python-HTTP-Server (mit cgi-Unterstützung arbeiten)
weiterhelfn wird
Ich möchte Joe und allen Anderen, die in Ruhe mitgedacht haben, für ihre Unterstützung danken! Danke Python-People!
Grüße
za0