python3 シェルから sqlite をインポートすると、brew でインストールされた python3 と --enable-loadable-sqlite-extensions を使用して手動でコンパイルされた python3 の両方が失敗します。助けてください!
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を再構築します。
Homebrewはpython3にsqlite3サポートとロード可能なモジュールを提供します。
brew install python3
正しいことをします(そしてsqliteも醸造します)。
おそらくあなたを襲ったバグがありましたが、それは修正されました