179

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

4

26 に答える 26

195

メイクファイルに適切なファイルが含まれていないよう.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.

于 2014-06-27T10:28:29.813 に答える
85

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

于 2010-04-30T19:46:42.547 に答える
12

マルチバージョン 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
    

最後に、すべてがうまくいくでしょう。

于 2017-04-18T11:51:06.920 に答える
11

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

于 2009-07-31T04:50:35.653 に答える
9

私は最近、いくつかの開発作業のために、Ubuntu11.04デスクトップにpython2.6.7をインストールしようとしました。このスレッドと同様の問題に遭遇しました。私はそれを次のように修正するように仕向けました:

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

于 2011-07-16T06:05:29.977 に答える
7

これはRedhat Centos 6.5でうまくいきました:

yum install sqlite-devel
pip install pysqlite
于 2014-08-16T10:31:24.320 に答える
5

Redhat 7 または Centos 7 を使用する Python 3.7.8 の場合。

  • sqlite-devel をインストールする
$ yum install sqlite-devel
  • sqllite 拡張機能を使用して Python3をコンパイルおよびインストールする
$ ./configure --enable-optimizations --enable-loadable-sqlite-extensions
$ make install
于 2020-10-16T08:21:17.620 に答える
4

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

sudo apt-get install python-pysqlite2
于 2009-07-31T04:23:44.537 に答える
4

FreeBSD 8.1 に問題があります:

- No module named _sqlite3 -

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

/usr/ports/databases/py-sqlite3

この後、次のことがわかります。

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
于 2011-08-29T23:40:25.037 に答える
3

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

于 2009-10-20T15:29:22.437 に答える
2

この問題がまだ今日まで残っていることに失望しました。最近、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

上記のヒントは解決策にたどり着くのに役立ちましたが、それらのいくつかを組み合わせて少し変更する必要があったため、これが役立つことを願っています.

于 2020-05-06T12:08:18.470 に答える
0

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
于 2016-10-18T11:27:16.603 に答える
-2

Python 環境にpysqliteをインストールする必要があります。

    $ pip install pysqlite
于 2013-09-20T08:25:58.513 に答える