Xia*_*hen 7 python sqlite homebrew pysqlite
症状:在我的Django应用程序,当我打电话from pysqlite2._sqlite import *,我得到了回溯Symbol not found: _sqlite3_enable_load_extension时
背景:
我试过了
brew uninstall sqlite并brew uninstall python和重新安装将这些添加到我的.bash_profile
export PATH="$(brew --prefix sqlite)/bin:$PATH"
LDFLAGS="-L/usr/local/opt/sqlite/lib"
CPPFLAGS="-I/usr/local/opt/sqlite/include"
export PKG_CONFIG_PATH=“/usr/local/opt/sqlite/lib/pkgconfig”
Run Code Online (Sandbox Code Playgroud)python -c"import sqlite3"不会返回任何错误
追溯的要点:https://gist.github.com/xwchen/e9704fa34f0463d2117fe9fbb37922a1
从此处复制的答案(https://github.com/Homebrew/homebrew-core/pull/3134)。如果您像我一样,则可能在安装python3之后安装了sqlite。无论如何,如果有人偶然发现了这个问题并需要答案...
如果通过自制软件安装,请先删除SQLite,python和python3
brew uninstall --force python
brew uninstall --force python3
brew uninstall --force sqlite
Run Code Online (Sandbox Code Playgroud)
这将删除所有副本。
然后确保已安装Xcode 8或更高版本
重要
通过重新安装命令行工具
xcode-select --install
sudo xcode-select --reset
Run Code Online (Sandbox Code Playgroud)
最后通过这里的 pkg文件安装命令行工具。
在搜索中寻找命令行工具。(我已经下载了“用于Xcode 8.dmg的命令行工具(macOS 10.12)”),然后打开DMG并安装在那里找到的pkg。
现在安装SQLite,然后根据需要安装python和python 3:
brew install sqlite
brew install python
brew install python3
Run Code Online (Sandbox Code Playgroud)
运行brew install python --verbose并确保没有警告,如果没有警告,则应该解决问题。
别忘了做
pip install setuptools --upgrade && pip3 install setuptools --upgrade
Run Code Online (Sandbox Code Playgroud)
小智 6
发生这种情况可能是因为它无法找到 .so 库。 正如这里所解释的:
\n\n\n\n\n在 OS X 上,自制软件将 sqlite3 安装为 \xe2\x80\x9ckeg-only\xe2\x80\x9d,因为否则它会干扰系统 sqlite3。这意味着 libsqlite3.dylib 最终位于 /usr/local/opt/sqlite/lib 中,而不是 /usr/local/lib 中
\n
所以你可以简单地这样做:
\n\nexport DYLD_LIBRARY_PATH=/usr/local/opt/sqlite/lib:/usr/lib\nRun Code Online (Sandbox Code Playgroud)\n\n然后你应该能够导入 sqlite3。
\n