当从python3 shell导入sqlite时,两个brew都安装了python3并且手动编译了带有--enable-loadable-sqlite-extensions的python3失败。请帮忙!OS X 10.8.2 python 3导入sqlite错误
回答
Homebrew为python3提供了sqlite3支持和可加载模块。
brew install python3
会做正确的事情(和brew sqlite)。
有一个错误,可能会打击你,但它一直是fixed
模块被命名为sqlite3
,不sqlite
:
import sqlite3
http://docs.python.org/3/library/sqlite3.html
更新:现在,我们已经清理模块的名字,这个问题被报告:
ImportError: No module named '_sqlite3'
意味着您的Python实例无法找到C扩展模块_sqlite3.so
,它是的一部分标准库中的模块。由于回溯中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。
感谢您的帮助Ned。我认为brew安装sqlite --with-functions完成得很好,但brew安装python3仍然以相同的import sqlite3错误结束。我的猜测是它不知道brew的安装版本的sqlite,并且仍然链接到系统sqlite。任何想法如何将python3链接到brew sqlite?最后,[来自github的提示](https://github.com/mxcl/homebrew/issues/17765)给了我想要的东西,但它并不觉得这是正确的方式。我想知道这是否会导致与系统sqlite3之后的冲突。 – 2013-02-12 01:13:40
我并没有密切关注Homebrew的发展,但总体而言,该项目非常小心,以避免与Apple提供的软件发生冲突。在不同位置安装多个sqlite3 lib副本并不是问题。 – 2013-02-12 02:38:39
- 1. 的Python/OS X:在导入错误
- 2. Python 3.x tkinter导入错误
- 3. Python 3.x导入错误SyntaxError
- 4. 大厦ember.js在OS X 10.8.2
- 5. OS X上的Tensorflow导入错误
- 6. RQuantlib和Mac OS X 10.8.2
- 7. 导入错误与psycopg2,巨蟒3.X
- 8. OS X 10.8.2拒绝权限XCode
- 9. 在OS X上导入gtk与Python的错误
- 10. 拒绝了对OS X(10.8.2)山狮
- 11. Python 3模块导入错误
- 12. Mac OS X El Capitan - Scrapy/Python导入错误:无法导入名称xmlrpc_client
- 13. 在OS X上构建Python 3:[Python/importlib.h]错误133
- 14. 安装nokogiri Mac OS X 10.8.2安装XCode
- 15. 错误SQLite中3的Python
- 16. MAMP OS X 10.8.2虚拟主机
- 17. 未找到Python 3.x导入类模块错误
- 18. Python:无法导入urandom模块(OS X)
- 19. Tensorflow导入在OS X 10.8.5上的错误预计在
- 20. 导入Tkinter失败python 2.7.3 Mac OSX 10.8.2
- 21. 与Python和Gtk + 3导入错误
- 22. 蟒蛇在Mac OS X Lion的“导入错误:无法导入名urandom的”
- 23. 错误在OS X
- 24. 错误在OS X
- 25. 错误在OS X
- 26. 在Mac OS X上导入MySQLdb for Python时出错
- 27. Mac OS X python'import vigra'错误
- 28. os上的virtualenv错误X
- 29. 的Ruby 2.0.0 RVM失败编译OS X 10.8.2山狮
- 30. win32com导入错误python 3.4
它是如何失败? – 2013-02-11 17:38:48
抱歉,请忽略上述评论。错误信息:Python的3.3.0(默认情况下,2013年2月11日,8时22分56秒) >>>进口sqlite3的 回溯(最近通话最后一个): 文件 “”,1号线,在 文件“/ usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/sqlite3/__ init__.py“,第23行,在 from sqlite3.dbapi2 import * File” /usr/local/Cellar/python3/3.3.0/Frameworks/Python.framework/Versions/3.3/lib/python3.3/sqlite3/dbapi2.py“,第26行,在 from _sqlite3 import * ImportError:No模块名为'_sqlite3' –
2013-02-11 18:11:48