私は Django アプリを VPS running Debian で実行しようとしています。エラー:
File "/usr/local/lib/python2.5/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.5/site-packages/Django/db/backends/sqlite3/base.py", line 30, in <module>
raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)
ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
Pythonインストールを見ると、同じエラーが発生します。
Python 2.5.2 (r252:60911, May 12 2009, 07:46:31)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
>>>
Webを読んで、Python 2.5に必要なすべての SQLite ラッパーが含まれている必要があることを学びました。 Pythonを再インストールする必要がありますか、またはこのモジュールを起動して実行する別の方法がありますか?
メイクファイルに適切な.so
ファイルが含まれていないようです。以下の手順でこの問題を修正できます。
sqlite-devel
(または一部のDebianベースのシステムではlibsqlite3-dev
)をインストールします./configure --enable-loadable-sqlite-extensions && make && Sudo make install
を使用してPythonを再構成および再コンパイルします注
Sudo make install
部分は、そのpythonバージョンをシステム全体の標準に設定します。これにより、予期しない結果が生じる可能性があります。ワークステーションでこのコマンドを実行する場合は、 alongside を既存のpythonと共にインストールすることをお勧めします。これは、 Sudo make altinstall
で実行できます。 。
同じ問題(Ubuntu Lucidのソースからpython2.5
をビルド)があり、import sqlite3
はこの同じ例外をスローしました。パッケージマネージャーからlibsqlite3-dev
をインストールし、python2.5を再コンパイルすると、インポートが機能しました。
これは私がそれを機能させるためにしたことです。
python 2.7.5がインストールされたpythonbrew(pipを使用)を使用しています。
私は最初にZubair(上記)が言ったことを実行し、このコマンドを実行しました。
Sudo apt-get install libsqlite3-dev
次に、このコマンドを実行しました。
pip install pysqlite
これによりデータベースの問題が修正され、実行時にこの確認が得られました。
python manager.py syncdb
pyenv を使用しているときにUbuntuでPython 3.5でも同じ問題が発生しました。
pyenv を使用してpythonをインストールする場合、 一般的なビルドの問題 の1つとしてリストされます。これを解決するには、インストール済みのpythonバージョンを削除し、要件(この特定の場合はlibsqlite3-dev
)をインストールしてから、pythonバージョンを再インストールします。
sqlite-devel
パッケージをインストールします。
yum install sqlite-devel -y
ソースからpythonを再コンパイルします。
./configure
make
make altinstall
_sqlite3.soは/usr/lib/python2.5/lib-dynload/_sqlite3.soにあります。パスから判断すると、ファイル/usr/local/lib/python2.5/lib-dynload/_sqlite3.soが必要です。
以下を試してください:
find /usr/local -name _sqlite3.so
ファイルが見つからない場合、Pythonインストールに問題がある可能性があります。ある場合は、インストール先のパスがPythonパスにあることを確認してください。 Pythonシェルで、
import sys
print sys.path
私の場合、/ usr/lib/python2.5/lib-dynloadがリストにあるため、/ usr/lib/python2.5/lib-dynload/_sqlite3.soを見つけることができます。
最近、開発作業のためにUbuntu 11.04デスクトップにpython 2.6.7をインストールしてみました。このスレッドと同様の問題に遭遇しました。私はそれを修正することを夢見ていた:
Setup.pyファイルを調整して、正しいsqlite devパスを含める。 setup.pyのコードスニペット:
def sqlite_incdir:
sqlite_dirs_to_check = [
os.path.join(sqlite_incdir, '..', 'lib64'),
os.path.join(sqlite_incdir, '..', 'lib'),
os.path.join(sqlite_incdir, '..', '..', 'lib64'),
os.path.join(sqlite_incdir, '..', '..', 'lib'),
'/usr/lib/x86_64-linux-gnu/'
]
追加したビットは「/ usr/lib/x86_64-linux-gnu /」です。
Makeを実行した後、sqliteサポートがビルドされていない(つまり、正しくビルドされた:P)という警告は表示されませんでしたが、make install
を実行した後、sqlite3は同じ "ImportError: No module named _sqlite3" whe running "import sqlite3
。
そのため、ライブラリはコンパイルされましたが、正しいインストールパスに移動されなかったため、.so
ファイルをコピーしました(cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/
—これらはビルドパスです。おそらくセットアップに合わせて調整する必要があります) 。
出来上がり! SQLite3サポートが機能するようになりました。
Multi-version Pythonが私自身のvps(cent os 7 x64)でこの問題を解決したため、多くの人がこの問題に対処していることがわかりました。
ファイル「_sqlite3.so」を見つけます
find / -name _sqlite3.so
アウト:/usr/lib64/python2.7/lib-dynload/_sqlite3.so
使用するpython標準ライブラリのディレクトリを見つけ、
私のために/usr/local/lib/python3.6/lib-dynload
ファイルをコピーします。
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
最後に、すべてが大丈夫です。
これはRedhat Centos 6.5で機能しました。
yum install sqlite-devel
pip install pysqlite
FreeBSD 8.1に問題があります:
- No module named _sqlite3 -
ポートをスタンドすることで解決します----------
/usr/ports/databases/py-sqlite3
この後に見ることができます:
OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
Settings.pyファイルを確認します。データベースエンジン用に「sqlite3」ではなく「sqlite」を記述しただけではありませんか?
sqlite3
はPythonに同梱されています。私も同じ問題を抱えていました。python3.6
をアンインストールして、再度インストールしました。
既存のPythonをアンインストールします。
Sudo apt-get remove --purge python3.6
Python3.6をインストールします。
Sudo apt install build-essential checkinstall
Sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
Sudo make altinstall
python-pysqlite2 パッケージはインストールされていますか?
Sudo apt-get install python-pysqlite2
私は同じ問題を抱えていて、上記のANSからは何もうまくいきませんでしたが、今ではそれを修正しました
python.pip
とsqlite3
を削除して再インストールするだけです
Sudo apt-get remove python.pip
Sudo apt-get remove sqlite3
今再びインストールします
Sudo apt-get install python.pip
Sudo apt-get install sqlite3
私の場合、sqlite3
のインストール中にエラーが表示されたので、入力しました
sqlite3
ターミナルで、削除されたかどうかを確認し、解凍を開始しました
sqlite3
がインストールされたら、起動端末と書き込み
sqlite3
database.db
(データベースを作成するため)これは間違いなくあなたを助けると確信しています
あなたはcentosまたはredhatにいて、pythonを自分でコンパイルする必要があります。あなたのpythonソースコードディレクトリでこれを行うpythonのバグであり、これを以下で行います
curl -sk https://Gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1