症状:在我的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”
python -c“import sqlite3”不会返回任何错误
追溯的要点:https://gist.github.com/xwchen/e9704fa34f0463d2117fe9fbb37922a1
答案 0 :(得分:5)
从这里复制答案(https://github.com/Homebrew/homebrew-core/pull/3134)。如果你像我一样,你可能在安装python3后安装了sqlite。无论如何,如果有人偶然发现这个问题并需要答案......
如果通过自制软件安装
,首先删除SQLite,python和python3brew uninstall --force python
brew uninstall --force python3
brew uninstall --force sqlite
删除所有副本。
然后确保安装了Xcode 8或更高版本
重要强>
通过
重新安装命令行工具xcode-select --install
sudo xcode-select --reset
最后通过找到here的pkg文件安装命令行工具。
在搜索中查找命令行工具。 (我已经为Xcode 8.dmg下载了“命令行工具(macOS 10.12)”)然后打开DMG并安装那里找到的pkg。
现在安装SQLite,然后根据需要安装python和python 3:
brew install sqlite
brew install python
brew install python3
运行brew install python --verbose
并确保没有警告,如果没有则应解决问题。
别忘了做
pip install setuptools --upgrade && pip3 install setuptools --upgrade
答案 1 :(得分:0)
可能会发生,因为它无法找到.so库。 As explained here:
在OS X上,自制软件将sqlite3安装为“仅允许插入”,因为否则会干扰系统sqlite3。这意味着libsqlite3.dylib最终位于/ usr / local / opt / sqlite / lib,而不是/ usr / local / lib
所以您可以简单地做到这一点:
export DYLD_LIBRARY_PATH=/usr/local/opt/sqlite/lib:/usr/lib
那么您应该能够导入sqlite3。