2012-05-28 12 views
14

Tengo django 1.4 instalado en mi rhel 5. Por defecto, rhel 5 tiene python 2.4 en él, pero para usar django 1.4 instalé manualmente Python 2.7.3 El servidor de desarrollo está funcionando bien, pero cuando crear un nuevo proyecto y después de cambiar el archivo settings.py como:Django - Ningún módulo llamado _sqlite3

'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/home/oracle/Desktop/test1/my.db '

Ahora, cuando me doy python2.7 comando manage.py syncdb, me sale el error como:

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 

Por favor, sugiera la salida?

+0

Do http://stackoverflow.com/questions/8114946/how-do-i-set-up-sqlite-with-a-django-project y http://stackoverflow.com/questions/1210664/no-module-named-sqlite3 ayuda? – okm

+0

tengo este error con Python 3.4, cuando elijo Python 3.5 no tengo este problema –

Respuesta

6

Al django.db.backends.sqlite3, se trata de

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) 

Así que uno de los módulos mencionados sqlite3 o pysqlite2 no está instalado. intentará instalarlas

$ pip install sqlite3 # or pysqlite2 

actualización

sqlite3 y pysqlite2 son parte de Python, por lo tanto, estos dos paquetes no están en PyPi más.

+2

Esto ahora es parte de Python (si se compila con esta opción), así que ya no hay ningún paquete sqlite3 en el repositorio pip: https: //pypi.python.org/pypi/sqlite3 y https://pypi.python.org/pypi/pysqlite2 – Dereckson

+0

@Dereckson He actualizado la respuesta relacionada con tu comentario. Gracias –

+7

@AlirezaSavand Estoy utilizando django 1.10.3 con Python 3.5.2 pero todavía estoy enfrentando este error. ¿Alguna solución? – Jayesh

2

sqlite3 es parte del Python desde las versiones 2.5 en adelante. Instale esta lib:

sudo apt-get install libsqlite3-dev 

O también puede intentar instalar el paquete Python-dev.

1

Tuve el mismo problema con python 2.6.8 construido desde la fuente en Red Hat (pero esto probablemente se aplica a otras versiones en otros sistemas operativos).

Mi problema fue resuelto mediante la instalación de sqlite-devel (Red Hat) antes configuración y construcción de Python (o hacer config.status --recheck en su directorio de construcción, seguido de make y make install.

5

me dio el mensaje de error muy similar cuando traté de ejecutar el servidor de desarrollo de 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 

he resuelto esto instalando pysqlite módulo de Python con pip install pysqlite

+0

en caso de que Python 2.6 y una versión anterior necesiten instalar pysqlite como una lib separada. – simar

4

Esto es lo que hice para que funcione.

Estoy usando pythonbrew (que está usando pip) con python 2.7.5 instalado.

La primera vez que hice lo que dijo Zubair (arriba) y encontré este comando:

sudo apt-get install libsqlite3-dev 

Entonces me encontré con este comando:

pip install pysqlite 

Esto solucionó el problema de base de datos y tengo confirmación de esto cuando me encontré:

python manager.py syncdb 
4

en MacOSX 10.9 (Mavericks), que tenía que ejecutar este comando:

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

He utilizado homebrew para instalar sqlite3.

brew update; brew install sqlite 
+0

Gracias esto lo arregló para mí –

19

También puede haber compilado pitón a mano con ninguna biblioteca de desarrollo SQLite instalado

lo tanto, hacer

sudo apt-get install libsqlite3-dev libsqlite3 

A continuación, volver a instalar Python prueba

mediante la introducción de

python 
>>> import sqlite3 
+1

Tenga en cuenta que pyenv install (a partir de hoy) advertirá sobre la falta de libzip-devel y readline, pero no sobre la falta de sqlite3-devel. – TauPan

+0

Si planea realizar alguna depuración, es posible que también desee instalar las bibliotecas de depuración usando 'apt-get install libsqlite3-0-dbg'. – MikeyE

0

FreeBSD10: para python3.5

pkg install py35-sqlite3 
Cuestiones relacionadas