Я хочу получить простой скрипт веб-страницы «hello world» на языке Python для работы в Windows Vista / Apache, но он будет поражать разные стороны. Я использую WAMP. Я установил mod_python, и модуль показывает, но я не совсем уверен, что мне делать, например. http.conf (такие вещи, как AddHandler mod_python .py, либо приводят меня к файлу, который не найден, либо к запрещенным, либо к ошибкам не найденного модуля при доступе к http: //localhost/myfolder/index.py). Я могу заставить mod_python.publisher работать, но нужно ли мне это / нужно?
Кто-нибудь может помочь?
Спасибо!






Вам НЕ НУЖНО mod_python для запуска кода Python в сети, вы можете использовать простое CGI-программирование для запуска вашего кода Python с инструкциями по следующей ссылке: http://www.imladris.com/Scripts/PythonForWindows.html
Это должно дать вам некоторые параметры конфигурации, необходимые для включения Python с CGI, а поиск в Google должен предоставить вам массу другой информации о том, как программировать на нем и тому подобное.
Mod_python полезен, если вам нужен немного более «дружественный» интерфейс или больший контроль над самим запросом. Вы можете использовать его для создания фильтров запросов и других вещей для сервера Apache, а с помощью обработчика издателя вы получаете более простой способ обработки запросов веб-страниц через python.
Обработчик издателя работает, сопоставляя URL-адреса с объектами / функциями Python. Это означает, что вы можете определить функцию с именем 'foo' в своем файле python, и любой запрос к http: // локальный / 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: // локальный / python / foo должен вызывать функцию foo () в index.py, или сбой с кодом 404, если он не существует.
AddHandler mod_python .py
Вы установили PythonHandler?
В наши дни подумайте об использовании WSGI вместо собственных интерфейсов mod-python для более широких вариантов развертывания. Либо через поддержку WSGI в mod-python, либо, что лучше, через mod-wsgi. (CGI через, например, wsgiref также будет работать нормально, и его легко настроить в среде разработки, где вас не заботит его бесполезная производительность.)
Держитесь подальше от mod_python. Одна из распространенных ошибочных идей заключается в том, что mod_python похож на mod_php, но для Python. Это неправда. Wsgi - это стандарт для запуска веб-приложений Python, определенный PEP 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_wsgi на Apache довольно прост. Я определенно рекомендую использовать CherryPy, и он хорошо работает с Apache и mod_wsgi, хотя у него есть собственный легкий сервер.
Расскажите самым простым способом, как запускать файлы python из apache
У меня такая ошибка: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] 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. Apache/2.2.4 (Win32) PHP/5.2.1 Server at localhost Port 80
Та же ошибка, что и @MarthaJames, и в журнале говорится, что система не может найти файл на d:/wamp/www/test.py, но он существует там
как я настроил django + apache, может быть полезно в StackOverflow: здесь