Django - 没有名为_sqlite3的模块

Sat*_*arg 19 sqlite django django-models django-admin

我在我的rhel 5上安装了django 1.4.默认情况下,rhel 5有python 2.4但是要使用django 1.4我手动安装python 2.7.3开发服务器运行正常,但是当我创建一个新项目并更改设置后. py文件为:

'ENGINE':'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
Run Code Online (Sandbox Code Playgroud)

请建议出路?

Mor*_*tus 23

你也可以手动编译python而不安装sqlite开发库

所以,做

sudo apt-get install libsqlite3-dev libsqlite3
Run Code Online (Sandbox Code Playgroud)

然后,重新安装python

通过输入测试

python
>>> import sqlite3
Run Code Online (Sandbox Code Playgroud)


Ali*_*and 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)
Run Code Online (Sandbox Code Playgroud)

因此,未安装名为sqlite3pysqlite2的模块之一.尝试安装它们

$ pip install sqlite3 # or pysqlite2
Run Code Online (Sandbox Code Playgroud)

更新

sqlite3并且pysqlite2是Python的一部分,因此这两个包不再在PyPi中.

  • @AlirezaSavand我使用django 1.10.3和python 3.5.2但我仍然面临这个错误.有解决方案吗 (7认同)
  • 这是Python的一部分(如果使用此选项编译),因此pip存储库中不再有任何sqlite3包:https://pypi.python.org/pypi/sqlite3和https://pypi.python.组织/的PyPI/pysqlite2 (2认同)

Rub*_*ous 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
Run Code Online (Sandbox Code Playgroud)

我通过安装pysqlitePython模块解决了这个问题pip install pysqlite.


Nat*_*une 5

在MacOSX 10.9(Mavericks)上,我必须运行此命令:

CPPFLAGS=-I/usr/local/opt/sqlite/include; LDFLAGS=-L/usr/local/opt/sqlite/lib; pip install pysqlite
Run Code Online (Sandbox Code Playgroud)

我用homebrew来安装sqlite3.

brew update; brew install sqlite
Run Code Online (Sandbox Code Playgroud)