it-swarm.dev

Django - _sqlite3 adlı bir modül yok

Benim rhel 5 yüklü Django 1.4 var Varsayılan olarak rhel 5 içinde python 2.4 var ama Django 1.4 kullanmak manuel olarak python 2.7.3 kullandım Geliştirme sunucusu iyi çalışıyor ancak yeni bir proje oluştururken ve settings.py dosyasını şu şekilde değiştirdikten sonra:

'MOTOR': 'Django.db.backends.sqlite3', 'ADI': '/home/Oracle/Desktop/test1/my.db'

Şimdi python2.7 manage.py syncdb komutu verdiğimde, hatayı şu şekilde alıyorum:

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

Lütfen çıkış yolunu önerin mi?

18
Satyam Garg

Django.db.backends.sqlite3 öğesinde çalışır

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)

Yanisqlite3veyapysqlite2adındaki modüllerden biri kurulu değil. Yüklemeyi deneyin

$ pip install sqlite3 # or pysqlite2

Güncelleme

sqlite3 ve pysqlite2, Python'un bir parçasıdır, bu nedenle bu iki paket artık PyPi içinde değildir.

6
Alireza Savand

Ayrıca, hiçbir sqlite geliştirme kütüphanesi kurulmamış olarak python'u derlemiş olabilirsiniz.

Öyleyse, yap 

Sudo apt-get install libsqlite3-dev libsqlite3

Ardından, python'u tekrar kurun

girerek test edin

python
>>> import sqlite3
22

MacOSX 10.9'da (Mavericks) bu komutu çalıştırmam gerekti:

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

Sqlite3'ü kurmak için homebrew kullandım.

brew update; brew install sqlite
5
Nate Aune

Django geliştirme sunucusunu çalıştırmayı denediğimde çok benzer bir hata mesajı alıyorum:

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

Bunu pysqlite Python modülünü pip install pysqlite ile kurarak çözdüm.

5
Rubinous

Bunu işe almak için yaptım.

Python 2.7.5 yüklü olan pythonbrew (pip kullanarak) kullanıyorum.

İlk önce Zubair'in (yukarıda) söylediklerini yaptım ve şu komutu kullandım:

Sudo apt-get install libsqlite3-dev

Sonra bu komutu koştum:

pip install pysqlite

Bu, veritabanı sorununu düzeltti ve koştuğumda bunun onayını aldım:

python manager.py syncdb
4
Joe

sqlite3 , sürüm 2.5'ten itibaren Python'un bir parçasıdır. Bu kütüphaneyi yükle:

Sudo apt-get install libsqlite3-dev

Veya Python-dev paketini kurmayı da deneyebilirsiniz.

3
Zubair Afzal

Red Hat üzerindeki kaynaktan inşa edilmiş python 2.6.8 ile aynı problemi yaşadım (ancak bu muhtemelen diğer işletim sistemindeki diğer versiyonlar için geçerli).

Benim sorunum sqlite-devel (Red Hat) before config ve building python (ya da build dizinine config.status --recheck yapın, ardından make ve make install.

1

MordicusEtCubitus'un cevabı doğru. Seni henüz acemi olarak oylayamazsın.

Sadece cevabınıza eklemek için, Fedora (23) 'da bunun yerine aşağıdaki komutu çalıştırın.

Sudo dnf install libsqlite3x-devel libsqlite3x
0
srv_ER

FreeBSD10 : için python3.5

pkg install py35-sqlite3
0
Ruslan