Das Problem für mich war nicht in Apache eingerichtet, aber zu verstehen, wie mod_apache tatsächlich die .py-Dateien verwendet. Anweisungen auf Modulebene (einschließlich der in einem if __name__=='__main__'
Abschnitt) sind nicht ausgeführt - ich nahm an, dass das Stdout vom Ausführen des Skripts auf der Befehlszeile wäre, was der Server ausgeben würde, aber so funktioniert es nicht.
Stattdessen schrieb ich eine Modul-Level-Funktion namens index()
, und hatte es als Zeichenfolge den HTML-Code der Seite zurückgeben. Es ist auch möglich, andere Modul-Level-Funktionen zu haben (zB otherFunction()
), die als weitere Segmente in der URI (testScript.py
zB testScript/otherFunction
für die Datei.) Zugegriffen werden kann
Offensichtlich macht dies mehr Sinn als meine ursprüngliche stdout Konzeption . Bessere Möglichkeit, Python tatsächlich als Skriptsprache und nicht als eine riesige Auszeichnungssprache zu verwenden.
Die Informationen zu mod_python wurden von der Django-Projektseite entfernt, da sie jetzt mod_wsgi empfehlen - https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/ –