Версия Sqlite для Python 3.x - PullRequest
3 голосов
/ 15 июня 2011

Я хочу использовать sqlite3 с Python 3.1.3, и мне нужно установить для enable_load_extension значение true.Я считаю, что для этого нужна версия sqlite 3.x.Из чтения постов здесь видно, что подходящая версия sqlite должна быть в комплекте с Python версии 2.6 и выше.Однако, когда я делаю:

import sqlite3
sqlite3.version_info

Возвращается результат: '2.4.1'

Я получаю один и тот же ответ на другой машине с Python 2.6.

На сайте pysqlite нет бинарных файлов для Python 3.x.Моя копия Python пришла с официального сайта Python.

Итак: 1) Какую версию sqlite я должен иметь с 3.1?2) Если мне нужна более свежая версия, куда она делась - нужно ли устанавливать переменную окружения?2) Если мне нужно у

Ответы [ 2 ]

9 голосов
/ 15 июня 2011

Не путайте версию SQLite с версией pysqlite, привязки Python для API SQLite.Используемые вами атрибуты version и version_info относятся к последнему.

Когда-нибудь задумывались, почему модуль назван sqlite3?Он поддерживает только версию 3.x!

Чтобы проверить версию SQLite, используйте sqlite_version вместо:

import sqlite3
print sqlite3.sqlite_version

В моей установке Python 2.6 это печатает 3.5.9.Для Python 3.2 я получаю 3.7.4.

Вы также можете использовать SQL для получения версии:

>>> import sqlite3
>>> connection = sqlite3.connect(':memory:')
>>> cursor = connection.cursor()
>>> cursor.execute('SELECT sqlite_version()').fetchone()
('3.7.4',)
2 голосов
/ 15 июня 2011

Вам нужно sqlite3.sqlite_version_info ... это 3.5.9 для Python 2.6 и 3.1, 3.6.21 для Python 2.7 и 3.7.4 для Python 3.2. У вас есть версия pysqlite.

Вы пытались установить "enable_load_extension в true"?

Вы можете прочитать некоторые из этой длинной саги ...

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