mod_python auf Version 2.5 umstellen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Hallo Python Freunde,
ich würde gerne mod_python verwendn aber ich benötige die Version 2.5. Kann man mod_python irgendwo so konfigurieren damit er einen bestimmten Interpreten verwendet ??

Viele Grüße
BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Kann man mod_python irgendwo so konfigurieren damit er einen bestimmten Interpreten verwendet ??
Hallo BasterTWO!

Es gibt die Direktive "PythonInterpreter" http://www.modpython.org/live/current/d ... er-pi.html. Aber ich weiß nicht, wie sich diese auswirkt und wie man die genau einstellen muss und ob das überhaupt dafür da ist um auf eine andere Python-Version umzustellen.

Vielleicht ist es einfacher das Programm so umzuschreiben, dass es auch mit Python 2.4 funktioniert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Also ich wollte versuch so CherryPy in Apache zu integrieren, da es mir nicht gelugen mit deiner Version das verfügbar zu machen.

Viele Grüße
BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo BasterTWO!

Lass mal ein paar Infos rüber wachsen.

Fangen wir mal damit an:
- Betriebssystem-Version
- Apache-Version

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Hier sind meine Infos:

Apache => 2.2.3
Betriebsystem => Debian Etch 4.0
Python => 2.5

Apache Mod Python => libapache2-mod-python (3.2.10-4)

Viele Grüße
BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Apache => 2.2.3
Betriebsystem => Debian Etch 4.0
Python => 2.5
Ist bei Debian Etch Python 2.5 standardmäßig installiert oder musstest du es nachinstallieren?

Was gibt ``aptitude search libapache2-mod-python`` aus?
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Nein ich habe Python 2.5 nach installiert.

Ausgabe von apitude:
i libapache2-mod-python - Apache 2 module that embeds Python within the server
p libapache2-mod-python-doc - Apache 2 module that embeds Python within the server
v libapache2-mod-python2.4 -

BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Ich schreibe morgen im Laufe des Tages eine kurze Beschreibung, wie man eine CherryPy-Website hinter dem Apachen mit mod_fastcgi unter Debian zum Laufen bekommt. So lange musst du noch warten.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Das wäre echt super !!!
Keine sorge ich kann gut und gerne warten.

Viele Grüße
BasterTWO
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Fassen wir das mod_python-Problem zusammen. Du _kannst_ die Python-Version die mod_python nutzt aus technischen Gründen nicht ändern. mod_python ist gegen eine bestimmte Version von der libpython gelinkt, das müsstest du neu kompilieren.

Besser FastCGI nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Das wäre echt super !!!
Hallo BasterTWO!

http://www.python-forum.de/post-84423.html

Nur noch eines vorab: Schreibe dein Programm so, dass es auch mit Python 2.4 läuft. Das ist leichter als sich mit zwei verschiedenen Python-Versionen auf einem Server herum zu schlagen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Hallo gerold,
deine HowTo ist echt genial. Viele Dank !!!!!

Leider habe ich das Problem das Apache meldet das er keinen Header bekommt. Ich hab nun mal die .fcgi Datei mal in der Shell ausgeführt da bekamm ich dann folgende Meldung:
WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI!
WSGIServer: missing FastCGI param SERVER_NAME required by WSGI!
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!
No handlers could be found for logger "cherrypy.access.3076744268"
Status: 200 OK
Date: Fri, 07 Dec 2007 16:19:08 GMT
Content-Length: 4176
Content-Type: text/html
Server: CherryPy/3.0.2

HIER DER HTML CODE
Kann man die Variablen irgendwie setzen denn da denke ich bekommt Apache auch einen richtigen Header da im Error Log nach einem 500 Error folgendes steht:
[Fri Dec 07 17:16:18 2007] [error] [client 91.49.83.20] FastCGI: comm with (dynamic) server "/home/ts2/ts2-cherrypy/cpapp.fcgi" aborted: (first read) idle timeout (30 sec)
[Fri Dec 07 17:16:18 2007] [error] [client 91.49.83.20] FastCGI: incomplete headers (0 bytes) received from server "/home/ts2/ts2-cherrypy/cpapp.fcgi"
Wie könnte ich dieses Problem lösen ???

Viele Grüße
BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Ich hab nun mal die .fcgi Datei mal in der Shell ausgeführt
[...]
[Fri Dec 07 17:16:18 2007] [error] [client 91.49.83.20] FastCGI: comm with (dynamic) server "/home/ts2/ts2-cherrypy/cpapp.fcgi" aborted: (first read) idle timeout (30 sec)
[Fri Dec 07 17:16:18 2007] [error] [client 91.49.83.20] FastCGI: incomplete headers (0 bytes) received from server "/home/ts2/ts2-cherrypy/cpapp.fcgi"
Hallo BasterTWO!

Das fcgi-Skript kann nicht ohne die Daten vom Apachen laufen. Die Header-Daten bekommt das FCGI-Skript vom Apachen übergeben. Deshalb läuft es auch ohne den Apachen nicht korrekt.

Ich bitte dich, dein Programm mal ganz außen vor zu lassen. Nimm exakt das Beispiel, das ich vorgezeigt habe und versuche diese Skripte mit genau den *gleichen Dateinamen* zum Laufen zu bekommen. Und verwende keine Bindestriche im Pfad. Das könnte evt. zu Problemen führen. Also "ts2-cherrypy" nach "ts2cherrypy" ändern.

Und wenn du dann alles auf das Beispiel von mir umgestellt hast und es immer noch nicht funktioniert, dann legst die Python-Dateien, die INI und die relevanten Apache-Konfigurationsdateien auf http://paste.pocoo.org/ ab. Dann kann ich sie mir ansehen um herauszufinden, ob dort irgendwo noch ein Fehler versteckt ist.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Hallo,
ich habe nun mal dein Beispiel etwas verändernt. Das mein Template geladen wird. Hier habe ich alle Veränderungen die ich gemacht habe gepostet: http://paste.pocoo.org/show/14605/.

Wenn ich diese Änderungen gemacht habe bekomme ich wieder die Apache Internal Server Error Fehlermeldung. Kennt jemand darauf einen Rat ???

Viele Grüße
BasterTWO
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

nur nochmal zum Thema mod_python:

Ich habe die gleiche Geschichte auch hinter mir.

Etch hat Py2.4 und alle apt-get Pakete sind auf 2.4 ausgelegt.
mod_python kann seine Version nicht ändern (wie Leonidas schon geschrieben hat)

Lösung ist recht einfach:
alles selber neu kompilieren dabei musste ich jedoch feststellen das ich mir manch andere Sachen kaputt gemacht habe an die ich zuerst nicht gedacht habe.
z.B Trac, dann die Python Subversions Bindings und noch ein paar Sachen

oder alternative:
z.B auf Ubuntu wechseln (wenn möglich) hier sind die Pakete deutlich aktueller.

das hat mod_python in meinen Augen einen kleinen Knacks beschert ;-)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Wenn ich diese Änderungen gemacht habe bekomme ich wieder die Apache Internal Server Error Fehlermeldung.
Hallo BasterTWO!

1.) Mich interessiert jetzt nur mal eines: Hat das von mir gezeigte Beispiel funktioniert?

2.) Falls mein Beispiel funktioniert, dann ändere nur eine einzige Sache daran. Füge diese Zeile hinzu:

Code: Alles auswählen

from Cheetah.Template import Template
Tritt dann der Fehler auf?

Wenn nicht, dann füge zusätzlich die Zeile

Code: Alles auswählen

import MySQLdb
hinzu. Tritt dann der Fehler auf?

3.) Wenn das dann so läuft, dann entwickelst aber bitte lokal und nicht am Server. Das Python-Modul (im Beispiel *cpexample.py*) ist direkt ausführbar und zum Enwickeln gedacht.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Code: Alles auswählen

aptitude install python-cheetah
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BasterTWO
User
Beiträge: 75
Registriert: Donnerstag 25. Oktober 2007, 20:03

Dein Beispiel hat super funktioniert, dann habe ich genau wie du es gesagt hast es modifiert, aber schon vor deinem Post habe ich auch die Änderungen gepostet. Wenn ich eben das Template lade dann bekomme ich den Fehler von Apache, aber wenn ich das drausen lasse dann geht alles wunderbar.

Viele Grüße
BasterTWO
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BasterTWO hat geschrieben:Wenn ich eben das Template lade dann bekomme ich den Fehler von Apache
Hallo BasterTWO!

Lass dir bitte nicht alles aus der Nase ziehen.

Wenn du das funktionierende Beispiel nimmst -- und nichts Anderes -- und in diesem funktionierenden Beispiel exakt nur diese Zeile hinzu fügst:

Code: Alles auswählen

from Cheetah.Template import Template
Funktioniert es dann noch oder nicht mehr?

Es geht nur um diese Zeile. Mehr darfst du daran NICHT ändern. Keinen Templateaufruf und kein Import von MySQL. Nichts!

Es gibt auf diese Frage nur zwei Antworten: Ja oder Nein.

Wenn das Beispiel nur durch Ändern dieser Zeile nicht mehr funktioniert, dann musst du Cheetah installieren. Wie das geht, habe ich einen Beitrag vorher aufgezeigt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten