Этот точный вопрос задан раньше, но я нахожусь на своем пути! Я потратил 4 часа, пытаясь заставить SIMPLE Python CGI-скрипт работать в Windows XP, но я получаю ошибки. Пожалуйста, спаси меня!Запустить скрипт CGI Python для Windows XP
Python Script register.py
#!c:/Python30/python.exe -u
print "Content-type: text/html"
print "<P>Hello, World!</p>"
Script находится в:
C: \ Program Files \ Apache Software Foundation \ apache2.2 \ CGI-BIN \ сигнализатора
Apache Error Log:
[Tue Sep 21 19:06:36 2010] [error] [client 127.0.0.1] Premature end of script headers: register.py
[Tue Sep 21 19:06:36 2010] [error] [client 127.0.0.1] File "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/alerter/register.py", line 3\r
[Tue Sep 21 19:06:36 2010] [error] [client 127.0.0.1] print "Content-type: text/html"\r
[Tue Sep 21 19:06:36 2010] [error] [client 127.0.0.1] ^\r
[Tue Sep 21 19:06:36 2010] [error] [client 127.0.0.1] SyntaxError: invalid syntax\r
httpd.conf:
LoadModule cgi_module modules/mod_cgi.so
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
Options +ExecCGI
AddHandler cgi-script .py
</Directory>
Это должно быть ОЧЕНЬ просто. Да? Мне не хватает этой ОДНОЙ вещи, которая заставит ее, наконец, работать. Я получил PHP, работающий некоторое время назад без проблем.
Любые идеи? Благодаря!!!
Спасибо Джим! Использование методов «sys» работает! Теперь я озадачен заявлениями о печати. Я попытался напечатать одну и ту же строку из «write» выше, но я получаю обычную ошибку. – Christopher
Я вижу следующее (http://www.faqs.org/docs/diveintopython/kgp_stdio.html) stdout - это файл-подобный объект; вызов его функции записи распечатает любую строку, которую вы ему даете. Фактически, это то, что действительно делает функция печати; он добавляет возврат каретки в конец строки, которую вы печатаете, и вызывает sys.stdout.write. – Christopher
Действительно. Я использовал запись из-за этой точной разницы - запись не добавляет ничего к вашей строке, что позволяет легко определить, что такое фактическая ошибка. –