1

python3 シェルから sqlite をインポートすると、brew でインストールされた python3 と --enable-loadable-sqlite-extensions を使用して手動でコンパイルされた python3 の両方が失敗します。助けてください!

4

2 に答える 2

2

モジュールの名前はsqlite3、ではなく、sqliteです。

import sqlite3

http://docs.python.org/3/library/sqlite3.html

更新:モジュール名をクリアしたので、報告されている問題は次のとおりです。

ImportError: No module named '_sqlite3'

これは、Pythonインスタンスが標準ライブラリ_sqlite3.soのモジュールの一部であるC拡張モジュールを見つけることができないことを意味します。sqlite3トレースバック内ののファイルパスはdbapi2.py妥当に見えるため、この問題はおそらくパスの問題ではありません(sys.path)。ほとんどの場合、_sqlite3拡張モジュールはビルドまたはリンクに失敗しました。Pythonビルドからの出力にエラーがないか確認してください。OS X 10.8にはのバージョンが含まれてsqlite3いますが、セキュリティ上の理由から、オプションのロード可能な拡張機能は含まれていません。Pythonビルドに次のメッセージが含まれている可能性があります。

Failed to build these modules:
_sqlite3

そして、以前は、これ:

*** WARNING: renaming "_sqlite3" since importing it failed: dlopen(build/lib.macosx-10.8-x86_64-3.3-pydebug/_sqlite3.so, 2): Symbol not found: _sqlite3_enable_load_extension
  Referenced from: build/lib.macosx-10.8-x86_64-3.3-pydebug/_sqlite3.so
  Expected in: flat namespace
 in build/lib.macosx-10.8-x86_64-3.3-pydebug/_sqlite3.so

解決策は、ロード可能な拡張機能でビルドされたsqlite3の別のコピーをビルドしてインストールすることです。Homebrewを使用している場合は、オプション付きsqliteのレシピでwith-functionsそれを行う必要があります。次に、Pythonを再構築します。

于 2013-02-11T18:06:43.900 に答える
1

Homebrewはpython3にsqlite3サポートとロード可能なモジュールを提供します。

brew install python3正しいことをします(そしてsqliteも醸造します)。

おそらくあなたを襲ったバグがありましたが、それは修正されました

于 2013-02-12T10:49:32.290 に答える