2010-10-28 4 views
0

J'utilise http.server avec CGIHTTPRequestHandler sous OS X 10.6 et le chemin du code posix dans run_cgi() ne semble pas fonctionner correctement. J'appelle un situé à /cgi-bin/test.py d'un formulaire de soumission.CGI ne fonctionne pas avec Python 3.1 intégré. Http.server

Pour la plus grande partie de cet après-midi, je recevais l'erreur 'OSError: [Errno 2] Aucun fichier ou répertoire' à la ligne os.execve() 1058 mais maintenant ils sont 'OSError: [Errno 8] Exec erreur de format'. J'ai tellement changé que je ne suis pas sûr de la raison de cette erreur, mais de toute façon do_POST() ne fonctionne pas pour moi.

$ ./demon-local.py 
Serving HTTP on 0.0.0.0 port 8000 
localhost - - [27/Oct/2010 21:24:39] "POST /cgi-bin/test.py HTTP/1.1" 200 - 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/http/server.py", line 1058, in run_cgi 
    os.execve(scriptfile, args, os.environ) 
OSError: [Errno 8] Exec format error 
localhost - - [27/Oct/2010 21:24:39] CGI script exit status 0x7f00 

J'ai couru le code pdb et ne peut pas trouver quelque chose de mal avec les variables ScriptFile, args et os.environ. Une fois que j'atteins la ligne os.execve dans le débogueur, l'exécution semble juste se bloquer et je dois ctrl-c quelques fois pour tout tuer.

Quelqu'un a-t-il réussi ici à utiliser le CGIHTTPRequestHandler intégré?

Un grand merci, Chris

+0

Qu'essayez-vous de lancer via CGI? –

+0

Scripts CGI Python qui répondent aux requêtes POST. –

Répondre

-2

Pourquoi voudriez-vous écrire un script CGI en Python, puis utiliser un serveur Web Python pour faire l'appel CGI !? Parlez de forcer un chameau à travers l'œil d'une aiguille.

Appelez plutôt directement les méthodes Python à partir de Python. Avec Python 3.2 il devrait même y avoir une implémentation WSGI de référence. Ou vous pouvez regarder le cadre de la bouteille, il prend en charge Python 3.