.py, показывающий код в браузере вместо запуска

Я пытаюсь начать работу с Python, но не могу правильно настроить мой сервер для localhost (используя Ampps). Python работает только отлично через IDLE и командную строку, однако, когда я открываю файл в браузере, код отображается и не запускается.

Я следил за этим http://www.imladris.com/Scripts/PythonForWindows.html учебным пособием по настройке cgi, но он не работает.

Вот код для моей программы "привет мир", если это имеет значение.

#!/usr/bin/env python
# -*#!/usr/bin/python

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

Любые предложения?

Ответ 1

Ваш веб-сервер обрабатывает ваш код python как статический файл, а не исполняемый файл. Цель здесь заключается в том, что вы хотите, чтобы Apache выполнил python и отправил stdout обратно в браузер пользователя.

Я не знаком с Ampps, но основной поток Apache для получения этой настройки - это что-то вроде этого.

  • Измените строку параметров httpd.conf, чтобы включить ExecCGI
  • Зарегистрируйте свой файл python с помощью httpd.conf в качестве обработчика cgi, добавив следующую строку:
    AddHandler .py
  • Перезапустить Apache
  • Убедитесь, что ваша строка shebang (бит #!/usr/bin/env python сверху) фактически указывает путь к вашему исполняемому файлу python. Для python2.6, живущего на C:, это может быть прочитано:
    #!\Python26\python
  • Если ваши скрипты должны быть переносимыми, вместо изменения строки shebang добавьте строку ScriptInterpreterSource registry в ваш httpd.conf и убедитесь, что по умолчанию окна открывают файлы *.py с Python.exe. Это можно проверить, дважды щелкнув script. Если он не выполняется, щелкните его правой кнопкой мыши, выберите "открыть", затем "другой", а затем перейдите на свой файл python.exe. Обязательно проверьте флажок "всегда использовать эту программу для открытия файлов этого типа". Там находится статья базы знаний Майкрософт об этом здесь.

Наконец, mod_wsgi или FastCGI - это предпочтительный метод для запуска Apache для запуска python, при этом предпочтение было отдано более низким сайтам трафика (10 тысяч запросов в день). Я бы также посоветовал изучить веб-фреймворки, такие как web.py(очень легкий) или django (более тяжелый вес, но экономит массу времени, если вы собираете пользовательский ввод или взаимодействуете с базой данных).