Запуск скриптов Python в Mongoose - PullRequest
       35

Запуск скриптов Python в Mongoose

2 голосов
/ 01 сентября 2011

Я хочу запускать скрипты python на веб-сервере mongoose.Он работал нормально с php-cgi.exe, но не с python.exe.

Тестовый скрипт test.py:

print("Content-Type: text/html")
print("")
print("<h1>Hello World!</h1>")

Конфигурация Mongoose mongoose.conf:

m .py=text/html
c py
I C:\\python\\python.exe

Я пробовал скрипт из командной строки, и он правильно возвращает:

Content-Type: text/html

<h1>Hello World!</h1>

Вызов http://localhost/test.py возвращает следующее:

print("Content-Type: text/html")
print("")
print("<h1>Hello World!</h1>")

Итак, Pythonкод не интерпретируется и ошибки не регистрируются.

Ответы [ 4 ]

2 голосов
/ 19 января 2012

Простой mongoose.conf:

document_root d:\root
listening_ports 80
cgi_extensions .py

hello.py:

#!python.exe
print("Content-Type: text/html")
print("")
print("<h1>Hello World!</h1>")

Отлично работает на моей win-машине с набором PYTHONPATH.

P.S. Вместо #!python.exe я мог бы использовать что-то вроде #!d:\python\python.exe или #!d:/python/python.exe - это работает в любом случае.

1 голос
/ 24 января 2014

Обновление для mongoose 4.1, конфиг должен быть

cgi_pattern **.py$
cgi_interpreter C:\Python27\python.exe
0 голосов
/ 02 ноября 2012

Решено: файл mongoose.conf чувствителен к регистру. Следующая строка неверна:

c py

должно быть

C py

Я также могу подтвердить, что он работает без #!python.exe или #!c:\python33\python.exe. Как? Возможно, mongoose запрограммирован на запуск python.exe, когда видит файл .py, а python.exe находится в моем PATH.

0 голосов
/ 10 ноября 2011

Используя mongoose-3.0, отредактируйте файл конфигурации mongoose mongoose.conf, включив в него строки

cgi_extensions .py
cgi_interpreter c:\python26\python.exe

, и Python должен запуститься, и результат html должен отображаться в браузере OK.

Работая под windows 7, код Python для OP был помещен в файл test.py, а просмотренный URL был http://localhost:82/test.py на основе моего вызова мангуста с mongoose-3.0.exe -p 82 -e error_mongoose.txt.

Обратите внимание, что мне не нужно былоиметь что-нибудь вроде #!c:\\python26\\python.exe в первой строке файла python.Могут быть и другие способы вызова python, но мне не повезло заставить его работать, указав exe-интерпретатор в виде #!прокомментируйте первую строку сценария.Я думаю, что мое решение - следующая лучшая вещь - по крайней мере, это работает.

...