доморощенный питон @ 2 и питон предоставляет сломанный sqlite3 - PullRequest
0 голосов
/ 01 февраля 2019

Я пользуюсь последней версией macOS и доморощенным пивоваренным врачом, не вижу ничего плохого.и я просто использую brew install python, brew install python @ 2, чтобы получить последнюю версию python.

Когда я набираю python -c "import sqlite3", я получаю следующие сообщения об ошибках:

python2.7 -c "import sqlite3"
130 ↵ Трассировка (последний последний вызов): файл "", строка 1, в файле "/usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/init.py ", строка 24, из импорта dbapi2 * Файл" /usr/local/Cellar/python@2/2.7.15_2 / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / sqlite3 / dbapi2.py ", строка 28, из _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): символ не найден: _sqlite3_enable_load_extension Ссылка на: /usr/local/Cellar/python@2/2.7.15_2 / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / lib-dynload / _sqlite3.so Ожидается в: /usr/lib/libsqlite3.dylib в /usr/local/Cellar/python@2/2.70,15_2 / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / lib-dynload / _sqlite3.so

python -c "import sqlite3"
1 ↵ Traceback (последний вызов был последним): Файл "", строка 1, в файле "/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/sqlite3/init.py ", строка 23, из sqlite3.dbapi2 import * File" /usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/sqlite3/dbapi2.py "строка 27, из _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): символ не найден: _sqlite3_enable_load_extension Ссылка на: /usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_sqlite3.cpython-37m-darwin.so Ожидается в: /usr/lib/libsqlite3.dylib в /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, и все работает отлично.Можно ли заварить просто забыть что-то в формуле?Что я могу сделать, кроме как скомпилировать файл .so из исходного кода и вручную решить проблему?

1 Ответ

0 голосов
/ 14 февраля 2019

Я наконец узнаю, где скрывается ошибка.Все мои устройства MacOS (включая 2 Pro и 1 Air) используют один и тот же файл .zshrc, и по какой-то причине я добавляю export 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.В следующий раз я буду следовать правилам и предоставлю эту информацию.Проблема решена!

...