web-dev-qa-db-ja.com

_sqlite3というモジュールはありません

私は 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を再インストールする必要がありますか、またはこのモジュールを起動して実行する別の方法がありますか?

102

メイクファイルに適切な.soファイルが含まれていないようです。以下の手順でこの問題を修正できます。

  1. sqlite-devel(または一部のDebianベースのシステムではlibsqlite3-dev)をインストールします
  2. ./configure --enable-loadable-sqlite-extensions && make && Sudo make installを使用してPythonを再構成および再コンパイルします

Sudo make install部分は、そのpythonバージョンをシステム全体の標準に設定します。これにより、予期しない結果が生じる可能性があります。ワークステーションでこのコマンドを実行する場合は、 alongside を既存のpythonと共にインストールすることをお勧めします。これは、 Sudo make altinstall で実行できます。 。

89
jammyWolf

同じ問題(Ubuntu Lucidのソースからpython2.5をビルド)があり、import sqlite3はこの同じ例外をスローしました。パッケージマネージャーからlibsqlite3-devをインストールし、python2.5を再コンパイルすると、インポートが機能しました。

75
Emilien

これは私がそれを機能させるためにしたことです。

python 2.7.5がインストールされたpythonbrew(pipを使用)を使用しています。

私は最初にZubair(上記)が言ったことを実行し、このコマンドを実行しました。

Sudo apt-get install libsqlite3-dev

次に、このコマンドを実行しました。

pip install pysqlite

これによりデータベースの問題が修正され、実行時にこの確認が得られました。

python manager.py syncdb
19
Joe

pyenv を使用しているときにUbuntuでPython 3.5でも同じ問題が発生しました。

pyenv を使用してpythonをインストールする場合、 一般的なビルドの問題 の1つとしてリストされます。これを解決するには、インストール済みのpythonバージョンを削除し、要件(この特定の場合はlibsqlite3-dev)をインストールしてから、pythonバージョンを再インストールします。

19
Tiny Instance
  1. sqlite-develパッケージをインストールします。

    yum install sqlite-devel -y

  2. ソースからpythonを再コンパイルします。

    ./configure
    make
    make altinstall
    
13
John Zhang

_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を見つけることができます。

9
Glenn Maynard

最近、開発作業のためにUbuntu 11.04デスクトップにpython 2.6.7をインストールしてみました。このスレッドと同様の問題に遭遇しました。私はそれを修正することを夢見ていた:

  1. 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 /」です。

  2. 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サポートが機能するようになりました。

7
foomip

Multi-version Pythonが私自身のvps(cent os 7 x64)でこの問題を解決したため、多くの人がこの問題に対処していることがわかりました。

  1. ファイル「_sqlite3.so」を見つけます

    find / -name _sqlite3.so
    

    アウト:/usr/lib64/python2.7/lib-dynload/_sqlite3.so

  2. 使用するpython標準ライブラリのディレクトリを見つけ、

    私のために/usr/local/lib/python3.6/lib-dynload

  3. ファイルをコピーします。

    cp   /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
    

最後に、すべてが大丈夫です。

7
Ehco

これはRedhat Centos 6.5で機能しました。

yum install sqlite-devel
pip install pysqlite
5
Ehsan88

FreeBSD 8.1に問題があります:

- No module named _sqlite3 -

ポートをスタンドすることで解決します----------

/usr/ports/databases/py-sqlite3

この後に見ることができます:

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
2
george

Settings.pyファイルを確認します。データベースエンジン用に「sqlite3」ではなく「sqlite」を記述しただけではありませんか?

1
myselfhimself

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
1

python-pysqlite2 パッケージはインストールされていますか?

Sudo apt-get install python-pysqlite2
0
bryan

私は同じ問題を抱えていて、上記のANSからは何もうまくいきませんでしたが、今ではそれを修正しました

python.pipsqlite3を削除して再インストールするだけです

  1. Sudo apt-get remove python.pip
  2. Sudo apt-get remove sqlite3

今再びインストールします

  1. Sudo apt-get install python.pip
  2. Sudo apt-get install sqlite3

私の場合、sqlite3のインストール中にエラーが表示されたので、入力しました

  1. sqlite3

ターミナルで、削除されたかどうかを確認し、解凍を開始しました

sqlite3がインストールされたら、起動端末と書き込み

  1. sqlite3
  2. database.db(データベースを作成するため)

これは間違いなくあなたを助けると確信しています

0
tosky

あなたはcentosまたはredhatにいて、pythonを自分でコンパイルする必要があります。あなたのpythonソースコードディレクトリでこれを行うpythonのバグであり、これを以下で行います

curl -sk https://Gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
0
wolfkdy