Не удается импортировать SQLite с Python 2.6 - PullRequest
10 голосов
/ 24 октября 2008

Я использую Python 2.6 в Unix, и при запуске интерактивного приглашения ( SQLite должен быть предварительно установлен) я получаю:

[root@idev htdocs]# python
Python 2.6 (r26:66714, Oct 23 2008, 16:25:34)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>>

Как мне решить эту проблему?

Ответы [ 8 ]

14 голосов
/ 24 октября 2008

Ошибка:

ImportError: No module named _sqlite3

означает, что SQLite 3 не находит связанную совместно используемую библиотеку. В Mac OS X это _sqlite3.so, и оно должно быть таким же в других системах Unix.

Чтобы устранить ошибку, вы должны найти библиотеку _sqlite3.so на вашем компьютере и затем проверить PYTHONPATH для этого местоположения каталога.

Чтобы напечатать путь поиска Python, введите в оболочку Python следующее:

import sys
print sys.path

Если каталог, содержащий вашу библиотеку, отсутствует, вы можете попробовать добавить его в интерактивном режиме с помощью

sys.path.append('/your/dir/here')

и попробуйте

import sqlite3

еще раз. Если это работает, вы должны постоянно добавить этот каталог в переменную окружения PYTHONPATH.

PS: Если библиотека отсутствует, вам следует (повторно) установить модуль.

10 голосов
/ 02 июня 2009

Python 2.6 определяет, где установлены заголовки разработки sqlite3, и автоматически пропускает сборку _sqlite3, если она недоступна. Если вы собираете из исходного кода, установите sqlite3, включая заголовки разработки. В моем случае sudo yum install sqlite-devel разобрался с этим на CentOS 4.7. Затем пересоберите Python из исходного кода.

10 голосов
/ 24 октября 2008
import sqlite3

sqlite3 - интерфейс DB-API 2.0 для баз данных SQLite.

Вам не хватает .so (общий объект) - возможно, этап установки. В моей установке Linux Python, _sqlite3 находится по адресу:

${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
1 голос
/ 24 октября 2008

В моей системе _sqlite3.so, расположенной по адресу:

'/usr/lib/python2.6/lib-dynload/_sqlite3.so'

Убедитесь, что каталог находится в вашем sys.path:

>>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path))
['/usr/lib/python2.6/lib-dynload']
1 голос
/ 24 октября 2008

Попробуйте это:

from pysqlite2 import dbapi2 as sqlite
0 голосов
/ 07 марта 2013

У меня такая же проблема. Шаги для решения.

  1. Загрузите последнюю версию sqlite3 с веб-сайта sqlite. SQLite-Autoconf *
  2. Установите это за 3 простых шага
    1. . / Configure
    2. сделать
    3. сделать установку
  3. Перестройте питона делать сделать установку
0 голосов
/ 22 апреля 2010

2.5.5. Mac порт Python 2.5 теперь имеет эту подсказку:

"py25-sqlite3 @2.5.4 (python, databases)
    This is a stub. sqlite3 is now built with python25"

Итак, при обновлении порта python25 до python25 @2.5.5_0 импорт снова заработал. Поскольку sqlite3 является одной из зависимостей python25, он обновляется при обновлении python25. Таким образом,

$ sudo port upgrade python25

добивается цели в Mac OS X, сбор портов.

0 голосов
/ 05 июня 2009

Это решит вашу проблему?

Python 2.5.4 (r254:67916, May 31 2009, 16:56:01)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>> import sqlite3
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...