Настройка Python в Windows / Apache?
-
19-08-2019 - |
Вопрос
Я хочу получить простой скрипт веб-страницы на Python "hello world" для запуска в Windows Vista / Apache, но попадающий в разные стены.Я использую WAMP.Я установил mod_python
и модуль показывает, но я не совсем уверен, что я должен делать, например, вhttp.conf (такие вещи, как AddHandler mod_python .py либо приводит меня к ошибке "файл не найден", либо "запрещено", либо "модуль не найден" при доступе http://localhost/myfolder/index.py).Я могу получить mod_python.publisher
работать, но "хочу" ли я этого / нужно ли мне это?
Кто-нибудь может помочь?
Спасибо!
Решение
Держитесь подальше от mod_python
.Одна из распространенных вводящих в заблуждение идей заключается в том , что mod_python
это похоже на mod_php
, но для python.Это неправда. Wsgi является стандартом для запуска веб-приложений python, определенных БОДРОСТЬ ДУХА 333.Так что используйте mod_wsgi
вместо этого.
Или, в качестве альтернативы, используйте какой-нибудь веб-фреймворк, у которого есть сервер. Вишневыйэтот особенно хорош.Вы сможете запускать свое приложение как автономно, так и через mod_wsgi
.
Пример приложения Hello World, использующего cherrypy:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
application = HelloWorld()
if __name__ == '__main__':
cherrypy.engine.start()
cherrypy.engine.block()
Очень просто, да?Запуск этого приложения непосредственно на python приведет к запуску веб-сервера.Настройка mod_wsgi
к нему это приведет к запуску внутри apache.
Другие советы
Вам не нужен mod_python для запуска кода Python в Интернете, вы можете использовать простое программирование на CGI для запуска вашего кода python, следуя инструкциям по следующей ссылке: http://www.imladris.com/Scripts/PythonForWindows.html
Это должно предоставить вам некоторые параметры конфигурации, необходимые для включения Python с CGI, а поиск в Google должен предоставить вам множество другой информации о том, как программировать на нем и тому подобное.
Mod_python полезен, если вы хотите немного более "дружественный" интерфейс или больше контроля над самим запросом.Вы можете использовать его для создания фильтров запросов и других функций для сервера Apache, а с помощью обработчика publisher вы получаете более простой способ обработки запросов веб-страниц с помощью python.
Обработчик publisher работает путем сопоставления URL-адресов с объектами / функциями Python.Это означает, что вы можете определить функцию с именем 'foo' в вашем файле python, и любой запрос к http://localhost/foo вызвал бы эту функцию автоматически.Более подробная информация здесь: http://www.modpython.org/live/current/doc-html/hand-pub-alg-trav.html
Что касается конфигурации Apache, чтобы все заработало, что-то вроде этого должно сослужить вам хорошую службу
<Directory /var/www/html/python/>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Если у вас есть /var/www / html /, настроенный в качестве корневого каталога вашего веб-сервера, и у вас есть файл с именем index.py в каталоге python /, то любой запрос к http://localhost/python/foo следует вызвать функцию foo() в index.py или выполнить сбой с 404, если она не существует.
Добавить обработчик mod_python .py
Вы установили 'PythonHandler'?
В наши дни рассмотрите возможность использования WSGI вместо собственных интерфейсов mod-python для более широких возможностей развертывания.Либо через поддержку WSGI mod-python, либо, что может быть лучше, mod-wsgi.(CGI через eg.wsgiref также будет работать нормально, и его легко настроить в среде разработки, где вас не волнует его плохая производительность.)