Pythonバージョン3.5.0でsqlite3モジュールをインポートできません。これが私が得るものです:
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'
ウェブ全体にStackOverflowの投稿やサポートフォーラムがたくさんあり、人々がこの問題について不満を言っていることは知っていますが、これまでのところ、投稿された解決策はどれもうまくいきませんでした。これが私が行ったことのある場所です:
また、CentOS 6.8x86_64を実行しているこのサーバーにPython 2.6.6がインストールされています。Python REPLそしてPython 2.6.6を使用する場合はsqlite3を問題なくインポートします。bashから直接sqlite3を使用することもできますが、問題はないようです。
この役立つ質問 有望に見えました。ユーザーjammyWolfが提案したように、--enable-loadable-sqlite-extensions
オプションを使用してPython3.5を再構成および再コンパイルしようとしました。いいえ、同じエラーが引き続き発生します。
私はいい子のように仮想環境を使用してきましたが、このサーバーへのルートアクセス権があります。だから、私は悪い子で、virtualenvsをアクティブにせずにrootとしてpython3を実行しました。まだ運がない。ですから、パーミッションとは何の関係もないと思います。
エラーメッセージにNo module named '_sqlite3'
と表示されていることに気づきました。 このスレッド は、モジュール名の前の下線が、モジュールが実装の詳細であり、APIで公開されていないことを意味することを示しています。 ...この情報をどうすればよいかわかりませんが、どこかにヒントがあるかもしれません。
何か案は?
Falsetruは正しいので、なじみのない人のためにもう少し詳しく説明します(Linuxの説明)。このエラーが発生する場合は、正しいヘッダーなしでコンパイルされたバージョンのpythonを使用している可能性があります。これは、ソートするためのステップバイステップガイドです。(Python3.XXの手順)
Sudo apt-get install libsqlite3-dev
Sudo apt-get remove python3.6
cd /tmp && wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xvf Python-3.6.5.tgz
cd Python-3.6.5 && ./configure
make && Sudo make install
「python3.6-V」を正しく実行すると、pythonバージョンが得られます。仮想環境も再構築する必要があることに注意してください。
あなたが遭遇するかもしれない1つの最後の警告。
zipimport.ZipImportError: can't decompress data; zlib not available
これは、次のzlibライブラリがインストールされていない場合に発生します。
Sudo apt-get install zlib1g-dev
インストール sqlite-devel
ヘッダー、ビルドに必要なライブラリを含むパッケージsqlite3
拡張子。
yum install sqlite-devel
[〜#〜] note [〜#〜]:Pythonにはsqlite3
ライブラリ自体ですが、拡張モジュール(ラッパー)です。