CGI не работает со встроенным Python 3.1 http.server - PullRequest
0 голосов
/ 28 октября 2010

Я использую http.server с CGIHTTPRequestHandler на OS X 10.6, и путь кода posix в run_cgi () не работает должным образом.Я звоню по адресу /cgi-bin/test.py из формы отправки.

Большую часть дня я получал сообщение об ошибке «OSError: [Errno 2] Нет такого файла или каталога'в строке 1058 os.execve (), но теперь это' OSError: [Errno 8] Exec format error ".Я так сильно изменился, я не уверен в причине другой ошибки, но в любом случае do_POST () не работает для меня.

$ ./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

Я запустил код в pdb ине могу найти ничего плохого в переменных scriptfile, args и os.environ.Когда я достигаю строки os.execve в отладчике, кажется, что выполнение просто зависает, и мне приходится несколько раз нажимать ctrl-c, чтобы убить все.

У кого-нибудь здесь был успех при использовании встроенного CGIHTTPRequestHandler?

Большое спасибо, Крис

1 Ответ

0 голосов
/ 19 февраля 2011

Зачем вам писать CGI-скрипт на Python, а затем использовать веб-сервер Python для вызова CGI !? Поговорите о том, чтобы заставить верблюда загрызть игольное ушко.

Вместо этого вызывайте методы Python непосредственно из Python. В Python 3.2 должна быть даже эталонная реализация WSGI. Или вы можете посмотреть на фреймворк бутылки, он поддерживает Python 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...