2016-10-07 18 views
6

Pythonバージョン3.5.0でsqlite3モジュールをインポートできません。ここで私は何を得るのです。Python3で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の記事やサポートフォーラムがたくさんあります。私がしてきたのはここです:

  1. 私もCentOSの6.8 x86_64版を実行している、このサーバーにインストールされているのPython 2.6.6を、持っています。私はPython REPLを開いて、Python 2.6.6を使用しているときにsqlite3を正しくインポートできます。私はまた、bashからまっすぐにsqlite3を使用することができ、何も間違っているようです。

  2. This helpful question有望と思われた。ユーザーjammyWolfが提案したように、--enable-loadable-sqlite-extensionsオプションでPython3.5を再構成して再コンパイルしようとしました。いいえ、同じエラーが発生します。

  3. 私は良い男の子のような仮想環境を使用していましたが、私はこのサーバーへのルートアクセス権を持っています。だから、私は悪い男の子だったし、rootとしてpython3を実行したが、virtualenvsは起動していなかった。まだ運がありません。だから私はそれがパーミッションとは関係ないと思う。

  4. エラーメッセージには、それはNo module named '_sqlite3'と表示されています。 This threadは、モジュール名の前のアンダースコアはモジュールが実装の詳細であり、APIで公開されていないことを示しています。 ...私はこの情報をどうしたらいいのか分からないが、そこにヒントがあるかもしれない。

+0

'sqlite3'はPythonコードです。 '_sqlite3'はCコードです。あなたのディストリビューションの元のPythonにはすでにSQLiteライブラリが含まれているはずです。自分で3.5をコンパイルしましたか? –

+0

はい、自分でPython 3.5をコンパイルしました。私がそれを再コンパイルしようとすると、特定のフラグや認識すべきことはありますか? (また、_sqlite3がCコードであるとは思っていませんでした;ありがとう!) – fterdal

+0

あなたの配布用に3.5パッケージはありませんか?とにかく、あなたの質問は実際にPythonを正しくコンパイルする方法です。それを編集する。 –

答えて

1

のビルドに必要なヘッダ、ライブラリを含むパッケージsqlite-develをインストールします。

yum install sqlite-devel 

:Pythonはsqlite3ライブラリ自体が、拡張モジュール(ラッパー)が含まれていません。

+0

ああ、私はそれを試したことに言及すべきでした。 'no sqlite-develパッケージが利用可能になっています。 ' – fterdal

+0

@fterdal、' yum list | grep sqlite | grep dev'です。それはsqlite開発パッケージを表示します。 'sqlite-devel'の代わりにそのパッケージをインストールしてください。 – falsetru

+0

PythonにはSQLiteライブラリの独自のコピーがあります。別のパッケージは必要ありません。 –

関連する問題