Нет модуля с именем _sqlite3

Я пытаюсь запустить приложение Django на моем VPS Debian 5. Когда я запускаю демонстрационное приложение, оно возвращается с этой ошибкой:

  File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in     import_module
    __import__(name)

  File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
    raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that     order): No module named _sqlite3

Глядя на установку Python, она дает ту же ошибку:

Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

Чтение в Интернете, я узнаю, что Python 2.5 должен поставляться со всеми необходимыми SQLite оболочками. Нужно ли переустанавливать Python, или есть ли другой способ запустить этот модуль?

Ответ 1

Кажется, ваш make файл не содержит соответствующего файла .so. Вы можете исправить эту проблему с помощью следующих шагов:

  1. Установите sqlite-devel (или libsqlite3-dev в некоторых системах на основе Debian)
  2. Переконфигурируйте и перекомпилируйте Python с помощью ./configure --enable-loadable-sqlite-extensions && make && sudo make install

Заметка

Часть sudo make install установит эту версию Python как общесистемный стандарт, что может иметь непредвиденные последствия. Если вы запустите эту команду на своей рабочей станции, вы, вероятно, захотите установить ее вместе с существующим питоном, что можно сделать с помощью sudo make altinstall.

Ответ 2

У меня была та же проблема (создание python2.5 из исходного кода на Ubuntu Lucid), а import sqlite3 - это исключение. Я установил libsqlite3-dev из диспетчера пакетов, перекомпилировал python2.5, а затем работал импорт.

Ответ 3

У меня была такая же проблема с Python 3.5 на Ubuntu при использовании pyenv.

Если вы устанавливаете python с помощью pyenv, он указан как один из общие проблемы сборки. Чтобы решить эту проблему, удалите установленную версию python, установите требования (для этого конкретного случая libsqlite3-dev), затем переустановите версию python.

Ответ 4

Это то, что я сделал, чтобы заставить его работать.

Я использую pythonbrew (который использует pip) с установленным python 2.7.5.

Сначала я сделал то, что сказал Zubair (выше) и выполнил эту команду:

sudo apt-get install libsqlite3-dev

Затем я выполнил следующую команду:

pip install pysqlite

Это фиксировало проблему с базой данных, и я получил подтверждение этого при запуске:

python manager.py syncdb

Ответ 5

  • Установите пакет sqlite-devel:

    yum install sqlite-devel -y

  • Перекомпилируйте python из источника:

    ./configure
    make
    make altinstall
    

Ответ 6

Мой _sqlite3.so находится в /usr/lib/python 2.5/lib-dynload/_sqlite3.so. Судя по вашим путям, у вас должен быть файл /usr/local/lib/python 2.5/lib-dynload/_sqlite3.so.

Попробуйте следующее:

find /usr/local -name _sqlite3.so

Если файл не найден, что-то может быть неправильным при установке Python. Если это так, убедитесь, что путь, который он установил, находится в пути Python. В оболочке Python

import sys
print sys.path

В моем случае, /usr/lib/python 2.5/lib-dynload находится в списке, поэтому он может найти/usr/lib/python2.5/lib-dynload/_sqlite3.so.

Ответ 7

Я обнаружил, что многие люди сталкиваются с этой проблемой, потому что Python с несколькими версиями, на моем собственном vps (cent os 7 x64), я решил это следующим образом:

  • Найдите файл "_sqlite3.so"

    find / -name _sqlite3.so
    

    out: /usr/lib64/python2.7/lib-dynload/_sqlite3.so

  • Найдите каталог стандартной библиотеки python, который вы хотите использовать,

    для меня /usr/local/lib/python3.6/lib-dynload

  • Скопируйте файл:

    cp   /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
    

Наконец, все будет хорошо.

Ответ 8

Недавно я попробовал установить python 2.6.7 на рабочий стол Ubuntu 11.04 для работы некоторых разработчиков. Применили похожие проблемы к этой теме. Я пробовал исправлять это:

  • Настройка файла setup.py для включения правильного пути devl sqlite. Фрагмент кода из setup.py:

    def sqlite_incdir:
    sqlite_dirs_to_check = [
    os.path.join(sqlite_incdir, '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', 'lib'),
    os.path.join(sqlite_incdir, '..', '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', '..', 'lib'),
    '/usr/lib/x86_64-linux-gnu/'
    ]
    

    С битом, который я добавил: '/usr/lib/x86_64-linux-gnu/'.

  • После запуска make я не получил никаких предупреждений о том, что поддержка sqlite не была построена (т.е. построена правильно: P), но после запуска make install, sqlite3 все еще не импортировал с тем же "ImportError: No module named _sqlite3" whe running "import sqlite3".

    Итак, библиотека была скомпилирована, но не перешла на правильный путь установки, поэтому я скопировал файл .so (cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/ - это мои пути сборки, вам, вероятно, придется настроить их на свою установку).

Voila! Поддержка SQLite3 теперь работает.

Ответ 9

Это работало для меня в Redhat Centos 6.5:

yum install sqlite-devel
pip install pysqlite

Ответ 10

У меня проблема во FreeBSD 8.1:

- No module named _sqlite3 -

Он разрешен стоять на порту ----------

/usr/ports/databases/py-sqlite3

после этого можно увидеть:

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'

Ответ 11

Проверка файла settings.py. Вы не просто писали "sqlite" вместо "sqlite3" для механизма базы данных?

Ответ 12

sqlite3 поставляется с Python. У меня тоже была такая же проблема, я просто удалил python3.6 и установил его снова.

Удалите существующий Python:

sudo apt-get remove --purge python3.6

Установите python3.6:

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall

Ответ 13

Установлен ли python-pysqlite2 пакет

sudo apt-get install python-pysqlite2

Ответ 14

вы должны быть в centos или redhat и скомпилировать python самостоятельно, это ошибка python сделайте это в своем исходном коде python и сделайте это ниже

curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1

Ответ 15

У меня возникла та же проблема, у меня ничего не получалось из вышеприведенного ответа, но теперь я исправил

просто удалите python.pip и sqlite3 и переустановить

  1. sudo apt-get remove python.pip
  2. sudo apt-get remove sqlite3

теперь установите его снова

  1. sudo apt-get install python.pip
  2. sudo apt-get install sqlite3

в моем случае при установке sqlite3 снова он показал какую-то ошибку, затем я набрал

  1. sqlite3

на терминале, чтобы проверить, был ли он удален или начал распаковывать его

после того, как sqlite3 установлен fireup терминал и писать

  1. sqlite3
  2. database.db (для создания базы данных)

Я уверен, что это обязательно поможет вам

Ответ 16

Извините за оживление старой темы. Я пробовал все из этой темы, но у меня все та же проблема

Я, безусловно, что-то упустил. было бы здорово, если у вас есть идея, что я мог бы попробовать

Вот часть журнала:...... Файл "/usr/local/lib/python3.7/sqlite3/init.py", строка 23, из sqlite3.dbapi2 import * File "/usr/local/lib/python3.7/sqlite3/dbapi2.py ", строка 27, из _sqlite3 import * ModuleNotFoundError: нет модуля с именем '_sqlite3'

Заранее спасибо. Приветствия Джонс

Ответ 18

мой питон собран из исходного кода, причина в том, что при настройке exec отсутствуют параметры версия Python: 3.7.4

./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install

фиксированной

Ответ 19

У меня также была эта проблема для django 1.9, python3.5 и ubuntu 14.04 Я только что добавил sudo перед каждой командой и решил свою проблему пример

sudo python manage.py migrate
sudo python manage.py runserver

Ответ 20

Загрузите sqlite3:

wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz

Для установки выполните следующие действия:

$tar xvfz sqlite-autoconf-3071502.tar.gz
$cd sqlite-autoconf-3071502
$./configure --prefix=/usr/local
$make install

Ответ 21

Попробуйте скопировать _sqlite3.so чтобы Python мог его найти.

Это должно быть так просто, как:

cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/

Поверь мне, попробуй.

Ответ 22

Вам нужно установить pysqlite в вашей среде python:

    $ pip install pysqlite