2009-04-10 13 views
1

Ich habe eine Web-App in Python geschrieben mit SQLite und es läuft gut auf meinem Server zu Hause (mit Apache und Python 2.5.2). Ich versuche nun, es auf meinen Webhost zu laden und dort verwenden Server Python 2.2.3 ohne SQLite.
Jeder weiß eine Möglichkeit, SQLite in Python 2.2.3 zu verwenden, z. ein Modul, das ich hochladen und importieren kann? Ich habe versucht, das Modul von neueren Versionen von Python zu schlachten, aber sie scheinen nicht kompatibel zu sein.
Danke,
MikeSQLite in Python 2.2.3

+0

oO Python 2.2.3 wurde veröffentlicht .. vor 6 Jahren .. Vielleicht könnten Sie Ihren Web-Host davon überzeugen, 2.5 oder 2.6 zu unterstützen? Vielleicht versuchen Sie #!/Usr/bin/env python2.5 als shbang im Skript? – dbr

+0

Wenn Ihr Webhost nicht für Sie aktualisiert wird, suchen Sie einen neuen. http://wiki.python.org/moin/PythonHosting –

Antwort

2

Es gibt keine Out-of-the-Box-Lösung; Sie müssen entweder das SQLlite-Modul von Python 2.5 auf Python 2.2 zurückportieren oder Ihren Webhoster auf die neueste Python-Version upgraden.

Python 2.2 ist wirklich alt! Zumindest aus Sicherheitsgründen sollten sie upgraden (seit dem 30. Mai 2003 keine Sicherheitsfixes für 2.2 mehr!).

Beachten Sie, dass Sie mehrere Versionen von Python parallel installieren können. Stellen Sie nur sicher, dass Sie "/ usr/bin/python25" anstelle von "/ usr/bin/python" in Ihren Skripten verwenden. Um sicherzustellen, dass alles alte noch funktioniert, müssen Sie nach der Installation von Python 2.5 lediglich die beiden symbolischen Links "/ usr/bin/python" und "/ usr/lib/python" korrigieren, die jetzt auf 2.5 zeigen sollten. Biege sie zurück auf 2,2 und du bist gut.

0

Wenn Sie Shell-Zugriff auf Ihren Webserver haben, können Sie wahrscheinlich eine eigene Version von Python und SQLite erstellen. Dadurch können Sie die neueste Version verwenden. Laden Sie den Quellcode herunter und führen Sie bei der Konfiguration etwas wie "./configure --prefix = $ HOME/packages" aus.

Als nächstes Geige mit Ihrem .profile oder .bashrc oder was auch immer es ist sicher, $ HOME/Pakete zu machen/ist zuerst in dem Weg kommen. Dies wird Ihren privaten Python veranlassen, die eine Installation von Ihrem Web-Server außer Kraft zu setzen.

Diese Seite, die Sie vielleicht ein wenig mehr Informationen geben, wie dies wie Dreamhost auf einem Server tun: http://wiki.dreamhost.com/Python

0

Falls jemand über diese Frage kommt, der Grund, warum weder pysqlite noch APSW für Python verfügbar sind 2.2 Weil Python 2.3 die vereinfachte GIL-API hinzugefügt hat. Vor Python 2.3 war viel Code nötig, um den Überblick über die GIL zu behalten. (Die GIL ist die Sperre, die von Python verwendet wird, um korrektes Verhalten beim Multithreading zu gewährleisten.)

Wenn Sie einen Backport zu 2.2 ausführen, müssen Sie den gesamten Threading-Code auslesen. Der Versuch, es auch unter 2.2 Thread-sicher zu machen, wäre ein Albtraum. Es gab einen Grund, warum sie die vereinfachte GIL API eingeführt haben!

Ich bin immer noch erstaunt, wie beliebt ältere Python-Versionen sind. APSW für Python 2.3 wird immer noch regelmäßig heruntergeladen.