gpt4 book ai didi

python - homebrew python@2 和 python 提供了损坏的 sqlite3

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:49 25 4
gpt4 key购买 nike

我使用的是最新版本的 macOS 和 homebrew,brew doctor 没有发现任何问题。我只是使用brew install python,brew install python@2来获取最新版本的python。

当我输入 python -c "import sqlite3"时,我收到以下错误消息:

python2.7 -c "import sqlite3"
130 ↵ Traceback (most recent call last): File "", line 1, in File "/usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/init.py", line 24, in from dbapi2 import * File "/usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/dbapi2.py", line 28, in from _sqlite3 import * ImportError: dlopen(/usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so, 2): Symbol not found: _sqlite3_enable_load_extension Referenced from: /usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so Expected in: /usr/lib/libsqlite3.dylib in /usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so

python -c "import sqlite3"
1 ↵ Traceback (most recent call last): File "", line 1, in File "/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/sqlite3/init.py", line 23, in from sqlite3.dbapi2 import * File "/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/sqlite3/dbapi2.py", line 27, in from _sqlite3 import * ImportError: dlopen(/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-darwin.so, 2): Symbol not found: _sqlite3_enable_load_extension Referenced from: /usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-darwin.so Expected in: /usr/lib/libsqlite3.dylib in /usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-darwin.so

什么可能导致这个问题?我尝试下载 python 源代码并编译它,并将 _sqlite3.so 或 _sqlite3.cpython-37m-darwin.so 文件移动到brew安装文件夹中,一切正常。 brew 会不会忘记配方中的某些内容?除了从源代码编译.so文件并手动解决问题之外,我还能做什么?

最佳答案

我终于找到了bug隐藏的地方。我的所有 macOS 设备(包括 2 Pros 和 1 Air)都共享相同的 .zshrc 文件,并且出于某种原因,我添加了一个导出 DYLD_LIBRARY_PATH="/Users/myname/Library/Developer/Xcode/iOS DeviceSupport/10.0.1 (14A403)/Symbols/usr/lib/:/usr/lib/"这会破坏 python sqlite 共享库文件的构建,因为 sqlite 最近添加了一个名为“_sqlite3_enable_load_extension”的功能。

当我将 DYLD_LIBRARY_PATH 删除到过时的目录并重新安装 python 时,一切都很好。

顺便说一句,brew config和brew doctor没有提供有关DYLD_LIBRARY_PATH的信息。下次我会遵守规则并提供这些信息。问题解决了!

关于python - homebrew python@2 和 python 提供了损坏的 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54476008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com