私はDjango 1.4をrhel 5にインストールしました。デフォルトでは、rhel 5にはpython 2.4が含まれていますが、Django 1.4手動でpython 2.7.3をインストールしました2.7.3開発サーバーは正常に動作していますが、新しいプロジェクトを作成し、settings.pyファイルを次のように変更した後:
「エンジン」:「Django.db.backends.sqlite3」、「名前」:「/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
方法を提案してください。
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)
したがって、sqliteまたはpysqlite2 という名前のモジュールの1つがインストールされていません。それらをインストールしてみてください
$ pip install sqlite3 # or pysqlite2
更新
sqlite3
およびpysqlite2
はPythonの一部であるため、これら2つのパッケージは PyPi には含まれていません。
Sqlite開発ライブラリがインストールされていない状態でpythonを手動でコンパイルした可能性もあります
だから、
Sudo apt-get install libsqlite3-dev libsqlite3
次に、pythonを再インストールします
入力してテストする
python
>>> import sqlite3
MacOSX 10.9(Mavericks)では、次のコマンドを実行する必要がありました。
CPPFLAGS=-I/usr/local/opt/sqlite/include; LDFLAGS=-L/usr/local/opt/sqlite/lib; pip install pysqlite
自作を使用してsqlite3をインストールしました。
brew update; brew install sqlite
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
。
これは私がそれを機能させるためにやったことです。
python 2.7.5がインストールされている状態でpythonbrew(pipを使用しています)を使用しています。
私は最初にZubair(上記)が言ったことを実行し、次のコマンドを実行しました。
Sudo apt-get install libsqlite3-dev
それから私はこのコマンドを実行しました:
pip install pysqlite
これによりデータベースの問題が修正され、実行すると確認されました。
python manager.py syncdb
sqlite はPythonバージョン2.5以降の一部です。このlibをインストールします。
Sudo apt-get install libsqlite3-dev
または、Python-devパッケージのインストールを試すこともできます。
Red Hatのソースからビルドされたpython 2.6.8でも同じ問題がありました(ただし、これはおそらく他のOSの他のバージョンでも同じです)。
私の問題はsqlite-devel(Red Hat)をインストールすることで解決しましたbefore構成とビルドpython(またはconfig.status --recheck
をビルドディレクトリで実行し、その後にmake
およびmake install
。
MordicusEtCubitusの答えは正しいです。初心者なので、まだ賛成できません。
答えを追加するために、Fedora(23)で次のコマンドを実行して代わりにインストールします。
Sudo dnf install libsqlite3x-devel libsqlite3x
FreeBSD1:python3.5の場合
pkg install py35-sqlite3