python mysqldb ошибка на моем mac: библиотека не загружена: @ rpath / libmysqlclient.21.dylib - PullRequest
0 голосов
/ 23 июня 2018

import MySQLdb

'Traceback (most recent call last): File "<stdin>", line 1, in <module> File "build/bdist.macosx-10.13-intel/egg/MySQLdb/__init__.py", line 19, in <module> File "build/bdist.macosx-10.13-intel/egg/_mysql.py", line 7, in <module> File "build/bdist.macosx-10.13-intel/egg/_mysql.py", line 6, in __bootstrap__ ImportError: dlopen(/Users/simon/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.13-intel.egg-tmp/_mysql.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib Referenced from: /Users/simon/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.13-intel.egg-tmp/_mysql.so Reason: image not found

Я пытаюсь собрать и установить mysql-python и ln -s /usr/local/mysql/lib/libmysqlclient.18.dyli, но не могу разрешить его

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Я сделал нечто похожее на то, что сделал Сэм, и смог заставить его работать.

Я просто сделал копию файла libmysqlclient.21.dylib, расположенного в моей современной установке MySQL 8.0.13который был в /usr/local/mysql/lib и переместил эту копию с тем же именем в /usr/lib.

Однако вам придется временно отключить защиту целостности безопасности на вашем Mac, чтобы сделать это, поскольку у вас не будет или не будетвозможность изменить разрешения на что-либо в /usr/lib, не отключая его.Вы можете сделать это, загрузившись в систему восстановления, щелкнув Утилиты в меню вверху, открыть терминал и ввести csrutil disable в терминал.Просто не забудьте снова включить защиту целостности безопасности, когда закончите!Единственное отличие от вышеуказанного процесса состоит в том, что вместо этого вы запускаете csrutil enable.

Подробнее о том, как отключить и включить защиту целостности безопасности macOS , можно узнать здесь .

0 голосов
/ 29 июня 2018

Итак, насколько я могу судить, @rpath пытается преобразовать в / usr / lib, который не может быть записан.Я решил эту проблему, просканировав этот сайт .Многое написано на китайском, но я получил команду sudo install_name_tool -change @rpath/libmysqlclient.21.dylib /usr/local/mysql/lib/libmysqlclient.21.dylib /Users/[username]/.pyenv/versions/career/lib/python2.7/site-packages/_mysql.so

...