2012-05-28 3 views
14

Mam django 1.4 zainstalowany na moim rhel 5. Domyślnie rhel 5 ma python 2.4 w tym, ale do użycia django 1.4 Ręcznie zainstalowałem python 2.7.3 Serwer rozwoju działa dobrze, ale kiedy mam utwórz nowy projekt i po zmianie pliku settings.py jako:Django - Brak modułu o nazwie _sqlite3

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

teraz gdy daję polecenia manage.py syncdb python2.7, pojawia się błąd jak:

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 

Proszę zasugerować wyjście?

+0

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

+0

Mam ten błąd w Pythonie 3.4, kiedy wybieram python 3.5 nie mam tego problemu –

Odpowiedz

6

Na django.db.backends.sqlite3, próbuje

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) 

Więc jeden z modułów wymienionych sqlite3 lub pysqlite2 nie jest zainstalowany. Spróbuj zainstalować je

$ pip install sqlite3 # or pysqlite2 

Aktualizacja

sqlite3 i pysqlite2 są częścią Pythonie, dlatego te dwa pakiety nie są już w PyPi.

+2

To jest teraz część Pythona (jeśli skompilowana z tą opcją), więc nie ma już żadnego pakietu sqlite3 w repozytorium pip: https: //pypi.python.org/pypi/sqlite3 i https://pypi.python.org/pypi/pysqlite2 – Dereckson

+0

@Dereckson Zaktualizowałem odpowiedź dotyczącą Twojego komentarza. Dzięki –

+7

@AlirezaSavand Używam django 1.10.3 z pythona 3.5.2, ale nadal mam ten błąd. Jakieś rozwiązanie? – Jayesh

2

sqlite3 jest częścią Pythona od wersji 2.5 i późniejszych. Zainstaluj tę bibliotekę:

sudo apt-get install libsqlite3-dev 

Możesz też spróbować zainstalować pakiet Python-dev.

1

Miałem ten sam problem z pythonem 2.6.8 zbudowanym ze źródła na Red Hat (ale prawdopodobnie dotyczy to innych wersji w innym systemie operacyjnym).

Mój problem został rozwiązany poprzez zainstalowanie sqlite-devel (Red Hat) przed konfigurowania i budynek python (lub zrobić config.status --recheck w katalogu build, a następnie make i make install.

5

mam bardzo podobny komunikat o błędzie, gdy próbowałem uruchomić serwer rozwoju 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 

Rozwiązałem to instalując pysqlite moduł Pythona z pip install pysqlite

+0

w przypadku Pythona 2.6 i wcześniejszych wersji należy zainstalować pysqlite jako oddzielną bibliotekę. – simar

4

To jest to, co zrobiłem, aby go uruchomić.

Używam pythonbrew (który używa PIP) z zainstalowanym python 2.7.5.

raz pierwszy zrobił to, co Zubair (powyżej) powiedział i pobiegł polecenie:

sudo apt-get install libsqlite3-dev 

Wtedy wpadłem polecenie:

pip install pysqlite 

Ten problem został rozwiązany bazy danych i mam potwierdzenie tego, kiedy Pobiegłem:

python manager.py syncdb 
4

na MacOSX 10.9 (Mavericks), miałem do uruchomienia tej komendy:

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

Użyłem homebrew do zainstalowania sqlite3.

brew update; brew install sqlite 
+0

Dzięki temu poprawiono to dla mnie –

19

Możesz także zebraliśmy pytona ręcznie bez sqlite biblioteki rozwoju zainstalowany

Więc, czy

sudo apt-get install libsqlite3-dev libsqlite3 

Następnie ponownie zainstalować Pythona

testu wprowadzając

python 
>>> import sqlite3 
+1

Zauważ, że pyenv install (od dzisiaj) ostrzega o brakującym libzip-devel i readline, ale nie o brakującym sqlite3-devel. – TauPan

+0

Jeśli planujesz jakiekolwiek debugowanie, możesz również zainstalować biblioteki debugowania za pomocą 'apt-get install libsqlite3-0-dbg'. – MikeyE

0

FreeBSD10: dla python3.5

pkg install py35-sqlite3