OS X 10.8.2 python 3导入sqlite错误

时间:2013-02-11 17:29:57

标签: macos sqlite python-3.x

当从python3 shell导入sqlite时,brew安装python3和手动编译的python3与--enable-loadable-sqlite-extensions失败。请帮忙!

2 个答案:

答案 0 :(得分:2)

模块名为sqlite3,而不是sqlite

import sqlite3

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

更新:现在我们已经清除了模块名称,报告了问题:

ImportError: No module named '_sqlite3'

表示您的Python实例无法找到C扩展模块_sqlite3.so,它是标准库中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 recipe with the with-functions option应该这样做。然后重建Python。

答案 1 :(得分:1)

Homebrew为python3提供了sqlite3支持和可加载模块。

brew install python3会做正确的事情(也可以酿造sqlite)。

有一个错误,可能会让你感到震惊,但它一直是fixed