Einrichten von Python auf Windows / Apache?
-
19-08-2019 - |
Frage
Ich möchte eine einfache Python bekommen „Hallo Welt“ Web-Seite Skript auf Windows Vista / Apache laufen, aber schlagen verschiedene Wände. Ich benutze WAMP. Ich habe mod_python
und das Modul zeigt installiert, aber ich bin nicht ganz sicher, was ich in zum Beispiel tun soll http.conf (Dinge wie AddHandler Mod_python Py entweder mir bringen in eine Datei nicht gefunden wird, oder ein verbotenes oder Modul keine Fehler gefunden, wenn http: //localhost/myfolder/index.py ). Ich kann mod_python.publisher
bekommen zu arbeiten, aber ich „will“ das / braucht das?
Kann mir jemand helfen?
Danke!
Lösung
Bleiben Sie weg von mod_python
. Eine gemeinsame irreführende Idee ist, dass mod_python
wie mod_php
ist, aber für Python. Das ist nicht wahr. wsgi ist die Standard-Python-Web-Anwendungen ausführen können, durch PEP 333 . So verwenden mod_wsgi
statt.
oder alternativ verwenden, um einige Web-Framework, das einen Server hat. CherryPy 's ist besonders gut. Sie werden in der Lage sein, Ihre Anwendung auszuführen sowohl Standalone- als auch durch mod_wsgi
.
Ein Beispiel für Hallo Welt Anwendung mit 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()
Sehr einfach nicht wahr? Ausführen dieser Anwendung wird direkt auf Python einen Webserver starten. Konfigurieren mod_wsgi
es wird es in Apache laufen zu lassen.
Andere Tipps
Sie haben nicht mod_python NEED Python-Code im Web zu laufen, Sie einfache CGI-Programmierung verwenden, könnten Ihren Python-Code ausführen, die Anweisungen in dem folgenden Link: http://www.imladris.com/Scripts/PythonForWindows.html
Das sollten Sie Sie Python benötigen einige der Konfigurationsoptionen geben mit CGI zu ermöglichen, und eine Google-Suche sollten Sie Unmengen von anderen Informationen geben, wie in ihn zu programmieren und so weiter.
Mod_python ist nützlich, wenn Sie ein etwas mehr „freundlich“ Schnittstelle wollen oder mehr Kontrolle über die Anforderung selbst. Sie können es verwenden, um Anfrage Filter und andere Dinge für den Apache-Server und mit dem Publisher-Handler erhalten Sie einen einfacheren Weg, die Homepage-Anfragen über Python zu verarbeiten.
Der Publisher Handler funktioniert durch Mapping-URLs Python-Objekte / Funktionen. Dies bedeutet, dass Sie eine Funktion 'foo' in Ihrer Python-Datei mit dem Namen definieren können, und jede Anfrage an http: // localhost / foo würde automatisch diese Funktion aufrufen. Mehr Infos hier: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html
Wie für die Apache-Konfigurations Dinge funktionieren, so etwas wie dies sollte Ihnen gute Dienste leisten
<Directory /var/www/html/python/>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Wenn Sie / var / www / html / set up als root des Webservers und hat eine Datei im Python / Verzeichnis mit dem Namen index.py da drin, dann wieder einem Antrag auf http:. // localhost / python / foo die foo () Funktion in index.py nennen sollte, oder mit einem 404 fehlschlagen, wenn es nicht existiert
AddHandler Mod_python Py
Haben Sie setzen 'PythonHandler'?
In diesen Tagen betrachten WSGI anstelle von nativen Schnittstellen mod-Python für weitreichendere Einsatzmöglichkeiten. Entweder durch mod-Python WSGI Unterstützung, oder, vielleicht besser, mod-wsgi. (CGI über zB. Wsgiref wird auch gut funktionieren und ist einfach auf einer Entwicklungsumgebung eingerichtet zu bekommen, wo man über seine Müll Leistung egal.)