SQLite в Python 2.2.3 - PullRequest
       39

SQLite в Python 2.2.3

1 голос
/ 10 апреля 2009

Я написал веб-приложение на python с использованием SQLite, и оно отлично работает на моем сервере дома (с apache и python 2.5.2). Сейчас я пытаюсь загрузить его на свой веб-хостинг, и там серверы используют Python 2.2.3 без SQLite.
Кто-нибудь знает, как использовать SQLite в Python 2.2.3, например. модуль, который я могу загрузить и импортировать? Я пытался вырезать модуль из более новых версий python, но они не совместимы.
Спасибо,
Mike

Ответы [ 4 ]

2 голосов
/ 10 апреля 2009

Нет готового решения; вы должны либо перенести модуль SQLlite с Python 2.5 на Python 2.2, либо попросить веб-хостера обновить его до последней версии Python.

Python 2.2 действительно древний! По крайней мере, по соображениям безопасности их следует обновить (исправлений безопасности для 2.2 с 30 мая 2003 года больше нет!).

Обратите внимание, что вы можете установить несколько версий Python параллельно. Просто убедитесь, что вы используете "/ usr / bin / python25" вместо "/ usr / bin / python" в ваших скриптах. Чтобы убедиться, что все старые вещи все еще работают, после установки Python 2.5 вам просто нужно исправить две символические ссылки "/ usr / bin / python" и "/ usr / lib / python", которые теперь должны указывать на 2.5. Согните их обратно до 2.2, и все хорошо.

1 голос
/ 10 апреля 2009

Смотрите здесь: http://oss.itsystementwicklung.de/download/pysqlite/

Из заметок о выпуске (http://oss.itsystementwicklung.de/trac/pysqlite/browser/doc/install-source.txt)

  1. Python: Python 2.3 или более поздняя версия

Возможно, вы не сможете сделать то, что пытаетесь сделать.

0 голосов
/ 01 ноября 2010

В случае, если кто-нибудь сталкивается с этим вопросом, причина, по которой ни pysqlite, ни APSW не доступны для Python 2.2, заключается в том, что в Python 2.3 добавлен упрощенный GIL API. До Python 2.3 требовалось много кода для отслеживания GIL. (GIL - это блокировка, используемая Python для обеспечения правильного поведения при многопоточности.)

Выполнение backport до 2.2 потребовало бы удаления всего кода потоков. Попытка сделать его также безопасным для потоков под 2.2 будет кошмаром. Была причина, по которой они представили упрощенный GIL API!

Я все еще удивляюсь, насколько популярны старые версии Python. APSW для Python 2.3 по-прежнему регулярно загружается.

0 голосов
/ 11 апреля 2009

Если у вас есть доступ к вашему веб-серверу в оболочке, вы, вероятно, можете создать собственную версию Python и SQLite. Это позволит вам использовать последнюю версию. Загрузите исходный код, затем при настройке сделайте что-то вроде «./configure --prefix = $ HOME / packages».

Далее, возитесь с вашим .profile, или .bashrc или чем-то еще, чтобы убедиться, что $ HOME / packages / bin стоит первым на вашем пути. Это заставит ваш частный Python переопределить тот, который установлен вашим веб-сервером.

Эта страница может дать вам немного больше информации о том, как сделать это на сервере вроде Dreamhost: http://wiki.dreamhost.com/Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...