Вопрос по sqlite – Django - нет модуля с именем _sqlite3

18

У меня на rhel 5 установлен django 1.4. По умолчанию в rhel 5 есть python 2.4, но для использования django 1.4 я вручную установил python 2.7.3 Сервер разработки работает нормально, но когда я создаю новый проект и после изменения файла settings.py как:

«ДВИГАТЕЛЬ»: «django.db.backends.sqlite3», "NAME": "/home/oracle/Desktop/test1/my.db'"

Теперь, когда я даю команду python2.7 manage.py syncdb, я получаю ошибку как:

Traceback (most recent call last):
 File "manage.py", line 10, in <module>
   execute_from_command_line(sys.argv)
 File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 443, in execute_from_command_line
   utility.execute()
 File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 382, in execute
   self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 261, in fetch_command
   klass = load_command_class(app_name, subcommand)
 File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 69, in load_command_class
   module = import_module('%s.management.commands.%s' % (app_name, name))
 File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py",
line 35, in import_module
   __import__(name)
 File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py",
line 8, in <module>
   from django.core.management.sql import custom_sql_for_model,
emit_post_sync_signal
 File "/usr/local/lib/python2.7/site-packages/django/core/management/sql.py",
line 6, in <module>
   from django.db import models
 File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py",
line 40, in <module>
   backend = load_backend(connection.settings_dict['ENGINE'])
 File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py",
line 34, in __getattr__
   return getattr(connections[DEFAULT_DB_ALIAS], item)
 File "/usr/local/lib/python2.7/site-packages/django/db/utils.py",
line 92, in __getitem__
   backend = load_backend(db['ENGINE'])
 File "/usr/local/lib/python2.7/site-packages/django/db/utils.py",
line 24, in load_backend
   return import_module('.base', backend_name)
 File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py",
line 35, in import_module
   __import__(name)
 File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py",
line 31, in <module>
   raise ImproperlyConfigured("Error loading either pysqlite2 or
sqlite3 modules (tried in that order): %s" % exc)
django.core.exceptions.ImproperlyConfigured: Error loading either
pysqlite2 or sqlite3 modules (tried in that order): No module named
_sqlite3

Пожалуйста, предложите выход?

у меня есть эта ошибка с Python 3.4, когда я выбираю Python 3.5 у меня нет этой проблемы Roberth Solís

Ваш Ответ

9   ответов
6

Наdjango.db.backends.sqlite3пытается

try:
    try:
        from pysqlite2 import dbapi2 as Database
    except ImportError:
        from sqlite3 import dbapi2 as Database
except ImportError as exc:
    from django.core.exceptions import ImproperlyConfigured
    raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)

Итак, один из модулей названsqlite3 или жеpysqlite2 не установлен. Попробуйте установить их

$ pip install sqlite3 # or pysqlite2

Update

sqlite3 а такжеpysqlite2 являются частью Python, поэтому эти два пакета не находятся вPyPi больше.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededpypi.python.org/pypi/sqlite3Error: User Rate Limit Exceededpypi.python.org/pypi/pysqlite2
Error: User Rate Limit Exceeded
1

У меня была та же проблема с Python 2.6.8, собранным из исходного кода в Red Hat (но, вероятно, это верно для других версий в других ОС).

Моя проблема была решена установкой sqlite-devel (Red Hat)before настройка и сборка Python (или сделатьconfig.status --recheck в вашем каталоге сборки, а затемmake а такжеmake install.

4

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

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

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

sudo apt-get install libsqlite3-dev

Затем я запустил эту команду:

pip install pysqlite

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

python manager.py syncdb
3

sqlite3 является частью Python начиная с версии 2.5. Установите эту библиотеку:

sudo apt-get install libsqlite3-dev

Или вы также можете попробовать установить пакет Python-dev.

22

Вы также можете скомпилировать Python вручную без установленной библиотеки разработки sqlite.

Ну действуй

sudo apt-get install libsqlite3-dev libsqlite3

Затем переустановите Python

проверить, введя

python
>>> import sqlite3
Error: User Rate Limit Exceededapt-get install libsqlite3-0-dbg.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

Ответ MordicusEtCubitus правильный. Я не могу вас поддержать, так как я новичок.

Просто чтобы добавить к вашему ответу, на fedora (23) выполните следующую команду для установки.

sudo dnf install libsqlite3x-devel libsqlite3x
5

Я получил очень похожее сообщение об ошибке при попытке запустить сервер разработки Django:

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): dlopen(/Users/Rubinous/Projects/Jiiri2/jiiri_venv/lib/python2.7/lib-dynload/_sqlite3.so, 2): Library not loaded: /usr/local/opt/sqlite/lib/libsqlite3.0.8.6.dylib
Referenced from: /Users/Rubinous/Projects/Jiiri2/jiiri_venv/lib/python2.7/lib-dynload/_sqlite3.so
Reason: image not found

Я решил это установивpysqlite Модуль Python сpip install pysqlite.

Error: User Rate Limit Exceeded
5

На MacOSX 10.9 (Mavericks) мне пришлось выполнить эту команду:

CPPFLAGS=-I/usr/local/opt/sqlite/include; LDFLAGS=-L/usr/local/opt/sqlite/lib; pip install pysqlite

Я использовал homebrew для установки sqlite3.

brew update; brew install sqlite
Error: User Rate Limit Exceeded
0

FreeBSD10: заpython3.5

pkg install py35-sqlite3

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