2009-04-10 9 views
1

J'ai écrit une application web en python en utilisant SQLite et fonctionne bien sur mon serveur à la maison (avec Apache et Python 2.5.2). J'essaie maintenant de le télécharger sur mon hébergeur et là les serveurs utilisent python 2.2.3 sans SQLite.
Tout le monde connaît un moyen d'utiliser SQLite dans python 2.2.3 par exemple. un module que je peux télécharger et importer? J'ai essayé de découper le module à partir de nouvelles versions de python, mais elles ne semblent pas compatibles.
Merci,
MikeSQLite en Python 2.2.3

+0

oO Python 2.2.3 est sorti il ​​y a 6 ans .. Peut-être pourriez-vous convaincre votre hébergeur de supporter 2.5 ou 2.6 ..? Peut-être essayez #!/Usr/bin/env python2.5 comme le shbang dans le script? – dbr

+0

Si votre hébergeur ne met pas à jour pour vous, trouvez-en un nouveau. http://wiki.python.org/moin/PythonHosting –

Répondre

2

Il n'existe aucune solution prête à l'emploi; vous devez soit rétroporter le module SQLlite de Python 2.5 vers Python 2.2, soit demander à votre hébergeur de mettre à jour la dernière version de Python.

Python 2.2 est vraiment ancien! Au moins pour des raisons de sécurité, ils devraient être mis à niveau (plus de correctifs de sécurité pour 2.2 depuis le 30 mai 2003!).

Notez que vous pouvez installer plusieurs versions de Python en parallèle. Assurez-vous simplement d'utiliser "/ usr/bin/python25" au lieu de "/ usr/bin/python" dans vos scripts. Pour s'assurer que tout le vieux truc fonctionne toujours, après avoir installé Python 2.5, il suffit de réparer les deux liens symboliques "/ usr/bin/python" et "/ usr/lib/python" qui devraient maintenant pointer vers 2.5. Repliez-les à 2.2 et vous êtes bon.

0

Si vous avez un accès shell à votre serveur Web, vous pouvez probablement créer votre propre version de Python et SQLite. Cela vous permettra d'utiliser la dernière version. Téléchargez le code source, puis lorsque vous le configurez, faites quelque chose comme "./configure --prefix = $ HOME/packages".

Ensuite, manipulez votre fichier .profile ou .bashrc ou quoi que ce soit pour vous assurer que $ HOME/packages/bin est le premier sur votre chemin. Cela entraînera votre Python privé à remplacer celui installé par votre serveur Web.

Cette page pourrait vous donner un peu plus d'informations sur la façon de le faire sur un serveur comme Dreamhost: http://wiki.dreamhost.com/Python

0

Dans le cas où quelqu'un vient à travers cette question, la raison pour laquelle ni pysqlite ni APSW sont disponibles pour Python 2.2 est parce que Python 2.3 a ajouté l'API GIL simplifiée. Avant Python 2.3, il fallait beaucoup de code pour suivre le GIL. (Le GIL est le verrou utilisé par Python pour garantir un comportement correct lors de la multi-threading.)

Faire un backport à 2.2 nécessiterait l'extraction de tout le code de filetage. Essayer de faire en sorte que le filetage soit sûr sous 2.2 serait un cauchemar. Il y avait une raison pour laquelle ils ont introduit l'API GIL simplifiée!

Je suis toujours étonné de voir à quel point les anciennes versions de Python sont populaires. APSW pour Python 2.3 est encore régulièrement téléchargé.