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


136

Debian 5を実行しているVPSでDjangoアプリを実行しようとしていますデモアプリを実行すると、次のエラーが返されます。

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


1
同じ問題がソースからコンパイルされたpython 3.5.5にも当てはまります
Alex-Bogdanov

回答:


133

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

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

注意

sudo make install一部には、予期せぬ結果をもたらすことができ、システム全体の標準であるとそのPythonのバージョンを設定します。ワークステーションでこのコマンドを実行する場合、おそらく既存のpython と共にインストールする必要がありますsudo make altinstall。これはで実行できます。


jammyWolfに感謝します。初めてconfigureを実行した後でファイルを「失った」とは思わない。むしろ、すでにインストールされているsqlite-develでconfigureを実行すると、この違いがすべて生じた。
ジェフテイラー、

4
どうすればインストールできsqlite-develますか?カスタマイズしたLinuxシステムを使用しています。ダウンロードsqlite-autoconf-3100200.tar.gzして実行したところ./configuremake && make installpython3を再コンパイルした後も動作しません。
AntiMoron

2
これを読んでいる人のために、答えに設定オプションを必ず追加してください。それも私を救ったものです。それ以外の場合は、libsqlite3-devをインストールしたかどうかは関係ありません。
ticster

3
configureスクリプトの場所を確認するにはどうすればよいですか?
Jenna Kwon

1
これらのソリューション(このページのすべて:参照)はどれも、Python 3.8.0を使用した
Amazon

80

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


6
丁度!バイナリファイルや環境を手動で操作する必要はありません。私の場合、すでにソースからPython 2.7をビルドしていたので、コンパイルを最小限に抑えるために、apt-get install libsqlite3-devを実行しました。。/構成、設定; libinstallを作成します。sharedinstallを作成します。
oxfn 2013

38

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

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


22

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

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

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

sudo apt-get install libsqlite3-dev

それから私はこのコマンドを実行しました:

pip install pysqlite

これでデータベースの問題が修正され、実行すると確認が得られました。

python manager.py syncdb

2
Centos 6.5 yum install sqlite-develでは、最初の行の代わりに実行されます。
Ehsan88 14

3
これはPython 2に適していますが、pysqlite現在sqlite3Python 3にあり、それはできませんpip -m install
clabe45

5
pysqlite is not supported on Python 3. When using Python 3, use the sqlite3 module from the standard library
スティーブン

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

    yum install sqlite-devel -y

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

    ./configure
    make
    make altinstall

10

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


2
ちょうどチェックした。パスはそこにありますが、_sqlite3.soは実際にありません。個別にインストールできるか、それともpythonを再インストールする方が良いかどうかの提案 どうも!
アレクサンダーファンダイク

2
/ usr / localにあるため、Pythonを手動でビルドしてインストールしたようです(OSのパッケージは古すぎませんか?)。sqlite devパッケージがインストールされていることを確認してください(現在のディストリビューションではlibsqlite3-devがインストールされていない可能性があります)。そうしないと、Pythonでモジュールをビルドできません。これをインストールする場合は、Pythonを再ビルドして、そのモジュールを含める必要があります。
グレンメイナード

うーん、私はのlibsqlite3-devのインストールとPythonを再構築し、今はanotheエラーを取得:はImportError:./_sqlite3.so:未定義のシンボル:PyUnicodeUCS4_DecodeUTF8
アレクサンダー・ファン・ダイク

よくわかりません。ディストリビューションにはすでにPython 2.5が含まれていますpackages.debian.org/lenny/python2.5)。なぜ自分で構築するのですか?
グレンメイナード

1
しかし、Pythonは/ usr / localから実行しています。Pythonを2回インストールしたようです-自分で1回、apt-getで1回インストールすると、/ usr / localにあるものが壊れます。
グレンメイナード

8

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

  1. setup.pyファイルを調整して、正しいsqlite開発パスを含めます。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サポートが機能するようになりました。


ありがとうございました!Linux Mint Debian Edition、2014には最初の部分だけが必要でした
spookylukey

ありがとうございました!私にとってはまったく同じ問題です。ライブラリは構築されますが、正しいディレクトリにコピーされません。
Student222

8

私自身のvps(cent os 7 x64)でマルチバージョンPythonを使用しているため、多くの人がこの問題に直面していることがわかりました。

  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

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


6
私のために働いていませんでした。手に入れたImportError: dynamic module does not define module export function (PyInit__sqlite3)CentOSの7.に
xtluo

私にも同じですが、py2 .soはpy3.6.4には使用できませんか?@xtluo
MeadowMuffins

代わりにこのエラーが発生しましたImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
bgenchel

6

これは私にとってRedhat Centos 6.5で機能しました:

yum install sqlite-devel
pip install pysqlite

1
ただ私はピップステップを行う必要がありませんでした
HashRocketSyntax

6

私のpythonはソースからビルドされ、原因はexec configure python version:3.7.4のオプションがない

./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install

修繕


3

FreeBSD 8.1に問題があります。

- No module named _sqlite3 -

ポートを立てることで解決します----------

/usr/ports/databases/py-sqlite3

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

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

14
この答えはほとんど意味がありません。修正できますか?
Tim Post

同じ問題、FreeBSD 8.2 w / Py2.7.2がありました。py-sqlite3の場合、make / installをもう一度実行することで解決しました。
ジャスティン

最初にインストールされたように見える場合は、削除する必要があります。freebsd 10.2
Kunthar 2016年

2

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

sudo apt-get install python-pysqlite2

1
sqliteはPythonとともにインストールされます。別のパッケージをインストールする必要はありません。また、Pythonで提供されているライブラリをすでに持っていることがわかります。python-sqliteのインストールは、せいぜい混乱するだけです。
グレンメイナード

脳のけいれん。私はpython-pysqlite2パッケージを意味しました。このパッケージがないと、Django / sqliteをlennyで動作させることができませんでした。回答を更新しました。
ブライアン

python-pysqlite2をインストールしました。
アレクサンダーファンダイク

2

settings.pyファイルを確認します。データベースエンジンに「sqlite3」ではなく「sqlite」とだけ書いたのではないですか?


2

sqlite3Pythonに同梱されています。私も同じ問題を抱えていましたが、アンインストール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

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

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

1

同じ問題が発生しましたが、上記の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端末と書き込みfireupインストールされています

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

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


1

Windows OSのソリューションを探してこのページにアクセスした人に答えを出す:

pysqlite3またはdb-sqlite3がまだインストールされていない場合は、インストールする必要があります。以下を使用してインストールできます。

  • pip install pysqlite3
  • pip install db-sqlite3

私にとっての問題はsqlite3のDLLファイルでした。

解決:

  1. sqliteサイトからDLLファイルを取得しました。これは、Pythonインストールのバージョンによって異なる場合があります。

  2. envのDLLディレクトリに貼り付けました。私にとっては「C:\ Anaconda \ Lib \ DLLs」でしたが、あなたのものを確認してください。 DLLファイルを配置する前後


正確なエラーがありました。これはどういうわけか私の問題を解決しました。ありがとう!
uqji

1

この問題が今日まで残っていることに失望しました。私は最近CentOS 8.1にvCD CLIをインストールしようとしましたが、実行しようとしたときに同じエラーで歓迎されました。私の場合、私がそれを解決しなければならなかった方法は次のとおりです:

  • 適切なプレフィックスを使用してSQLite3を最初からインストールします
  • Pythonインストールをクリーンにする
  • Make installを実行してPythonを再インストールします

私はこれを行って、vCD CLIとVMware Container Service Extensionをインストールする方法について別のブログ投稿を作成しています。私は問題を修正するために使用した手順をキャプチャして、次の別のブログ投稿に入れました。

http://www.virtualizationteam.com/cloud/running-vcd-cli-fail-with-the-following-error-modulenotfounderror-no-module-named-_sqlite3.html

上記のヒントが解決策を得るのに役立ちましたが、いくつかを組み合わせて少し修正する必要があったので、これが役に立てば幸いです。


提供しているリンクとの関係を開示していただきありがとうございます。ありがたいです。
ロバートコロンビア

-1

sqlite3をダウンロードします。

wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz

次の手順に従ってインストールします。

$tar xvfz sqlite-autoconf-3071502.tar.gz
$cd sqlite-autoconf-3071502
$./configure --prefix=/usr/local
$make install

1
この質問は2009年に行われたもので、Debian 5に関するものでした。sqlite3は(Wheezy以降)リポジトリで利用できるようになり、手動でインストールする必要はありません。これはほとんどのディストリビューションにも当てはまると思います。
ジェローム2016年


-3

_sqlite3.soPythonが見つけられるようにコピーしてみてください。

それは次のように単純でなければなりません:

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

私を信じて、試してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.