Запуск файла .py в браузере - PullRequest
7 голосов
/ 07 июля 2011

Я хочу запустить файл python в браузере. Я установил Apache. и настроил httd.conf файл. Я создал test.py файл. Затем я попытался запустить test.py в своем браузере, набрав htt://localhost/test.py. Когда я это делаю, я получаю следующую ошибку:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, lohith.pinto@primefocusworld.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

В моем журнале ошибок

[Thu Jul 07 18:39:55 2011] [error] [client 127.0.0.1] (OS 2)The system cannot find the file specified.  : couldn't create child process: 720002: test.py
[Thu Jul 07 18:39:55 2011] [error] [client 127.0.0.1] (OS 2)The system cannot find the file specified.  : couldn't spawn child process: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/test.py

В чем здесь проблема?

Ответы [ 9 ]

11 голосов
/ 27 апреля 2012

Это также может произойти, если ваш shebang неверен (например, Unix, такой как #!/usr/bin/env python).Если это так, измените его на правильный путь к исполняемому файлу Python (например: #!C:\Python26\python.exe) или посмотрите на этот ответ: Как игнорировать Perb Shebang в Windows с Apache 2?

2 голосов
/ 01 августа 2011

Опции + ExecCgi под htdocs, ScriptAlias ​​/ cgi-bin / "C: / Program Files / Apache Software Foundation / Apache2.2 / cgi-bin /"

Это то, что у меня есть, и оно работает

1 голос
/ 07 июля 2011

Если это программа CGI, убедитесь, что она соответствует спецификации CGI (т. Е. Выводит строку заголовка с типом MIME и пустую строку, прежде чем пытаться что-либо написать)

0 голосов
/ 02 июня 2019

Использование окна "\" в первой строке решило мою проблему. В другой ветке была специально указана правая косая черта "/".

#!C:\Python\Python37\python.exe
0 голосов
/ 28 февраля 2019

Запускать Python в качестве CGI-шлюза легко в Windows с Apache.Это похоже на Windows и Linux, если вы следуете и понимаете основы.Я повторю здесь шаги для установки Windows XAMPP.

Требование: у вас должен быть XAMPP (не обязательно, но нужен Apache, я часто работаю на PHP, поэтому у меня есть XAMPP)

1) Откройте Apacheфайл конфигурации httpd.conf из папки Apache.3) Найдите «Индексы опций FollowSymLinks» и добавьте к ним опцию ExecCGI.Это может выглядеть так:

Options Indexes FollowSymLinks Includes ExecCGI

У вас может быть меньше или больше опций.

4) Поиск строки "AddHandler cgi-script .cgi", если она имеет # (комментарий)перед этим затем раскомментируйте его и добавьте обработчик .py к нему.Он должен выглядеть следующим образом:

AddHandler cgi-script .cgi .pl .asp .py

5) Сохраните httpd.conf и перезапустите Apache.6) Теперь самая важная часть - это способ создания файла сценария py.см. пример ниже.

#!C:\Python\Python37\python.exe
print("Content-type: text/html")
print("")
print("<html><head>")
print("")
print("</head><body>")
print("Hello.")
print("</body></html>")

первая строка должна указывать на установку Python, специфичную для вашей машины.

#!C:\Python\Python37\python.exe

для Linux это может быть

#!/usr/bin/python

Такжеваш скрипт на python должен быть помещен в папку htdocs или папку webroot для вашего Apache. У меня был python 3.7, и поэтому я добавил его местоположение, как вы можете видеть выше.Наконец, убедитесь, что ваш код Python должен соответствовать конкретной версии Python, которую вы используете.Например, в моем коде ранее я использовал print "Hello", который выдавал ошибку, вероятно, из-за Python версии 3.7.следовательно, я изменил весь свой код для правильного форматирования в соответствии с Python 3.7 изменил его на печать ("привет")

Надеюсь, это поможет.

0 голосов
/ 07 июля 2011

вы можете попробовать mod_python, он поддерживает веб-приложения, написанные на python. Парсер встроен в сервер как модуль apache, поэтому приложение работает быстрее, чем традиционный cgi.Также, если вы хотите придерживаться пути cgi, убедитесь, что все файлы .py находятся в папке с именем "cgi-bin" и имеют права на выполнение.

0 голосов
/ 07 июля 2011

Я бы изменил ваш URL на более вероятный в первом случае, т.е. http://localhost/test.py, а не тот, который вы указали (htt://localhost/test.py)

0 голосов
/ 07 июля 2011

Является ли файл в C: / Program Files (x86) / Apache Software Foundation / Apache2.2 / htdocs /, как указано в сообщении об ошибке. Если нет, то вам нужно поместить его туда или изменить конфигурацию, чтобы он выглядел в нужном месте.

Также, как и другие ответы, убедитесь, что у него есть правильные разрешения и что он выводит все необходимые заголовки.

0 голосов
/ 07 июля 2011

Если вы этого еще не сделали, вам необходимо установить соответствующие разрешения для test.py на 755.

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