OS X 10.8.2 python 3 导入 sqlite 错误

问题描述 投票:0回答:2

当从 python3 shell 导入 sqlite 时,brew 安装了 python3 并使用 --enable-loadable-sqlite-extensions 手动编译 python3 失败。请帮忙!

macos sqlite python-3.x
2个回答
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
配方和
with-functions
选项
应该可以做到这一点。然后重建Python。


1
投票

(已删除)--------------------

© www.soinside.com 2019 - 2024. All rights reserved.