作者:qqq | 来源:互联网 | 2023-02-13 11:18
症状:在我的Django应用程序,当我打电话from pysqlite2._sqlite import *
,我得到了回溯Symbol not found: _sqlite3_enable_load_extension
时
背景:
我已经使用homebrew(python 2.7.13)安装了python,它自动安装了sqlite
我正在使用命令行工具macOS 10.12,Xcode 8.2.1运行macOS 10.12.3
我用pip安装了pysqlite(pysqlite 2.8.3)
我试过了
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
1> 小智..:
从此处复制的答案(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
这将删除所有副本。
然后确保已安装Xcode 8或更高版本
重要
通过重新安装命令行工具
xcode-select --install
sudo xcode-select --reset
最后通过这里的 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