Не может импортировать SQLite с Python 2.6

Под другим углом, чтобы посмотреть на это:

DECLARE @A TABLE
(
    Price INT,
    ID_1 INT,
    ID_2 INT,
    ID_3 INT
)
INSERT INTO @A
(
    Price,
    ID_1,
    ID_2,
    ID_3
)
VALUES
(129.90, 1, 1, 1),
(199.90, 2, 1, 1),
(249.90, 3, 2, 1),
(299.90, 4, 4, 3),
(399.90, 6, 5, 4)


DECLARE @B TABLE
(
    Price INT,
    PriceID INT
)
INSERT INTO @B
(
    Price,
    PriceID
)
VALUES
(129.90, 1),  
(149.90, 2),  
(199.90, 3),   
(249.90, 4),  
(299.90, 5),   
(399.90, 6)

SELECT
    a.Price,
    SUM(b.NewPrice1),
    SUM(b.NewPrice2),
    SUM(b.NewPrice3)
FROM @A a
CROSS APPLY
(
    SELECT
        CASE WHEN PriceID = a.ID_1 THEN Price ELSE NULL END AS  NewPrice1,
        CASE WHEN PriceID = a.ID_2 THEN Price ELSE NULL END AS  NewPrice2,
        CASE WHEN PriceID = a.ID_3 THEN Price ELSE NULL END AS  NewPrice3
    FROM @B
) b
GROUP BY a.Price
10
задан Jakob Bowyer 27 July 2012 в 12:09
поделиться

7 ответов

Ошибка:

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: Если библиотека отсутствует, Вы должны (пере-), устанавливают модуль.

14
ответ дан 3 December 2019 в 14:12
поделиться
import sqlite3

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

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

${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
10
ответ дан 3 December 2019 в 14:12
поделиться

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

from pysqlite2 import dbapi2 as sqlite
1
ответ дан 3 December 2019 в 14:12
поделиться

В моей системе _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
ответ дан 3 December 2019 в 14:12
поделиться

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

10
ответ дан 3 December 2019 в 14:12
поделиться

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

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
>>>
0
ответ дан 3 December 2019 в 14:12
поделиться

Версия 2.5.5. Порт Python 2.5 для Mac теперь имеет такую ​​подсказку:

"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
ответ дан 3 December 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: