64-битная клиентская библиотека Oracle не может быть загружена в Mac - PullRequest
0 голосов
/ 01 ноября 2018

Я создал пример сценария Python для подключения к базе данных Oracle для выполнения запросов для тестирования базы данных, я запускал один и тот же сценарий в Windows и работает нормально, но во время работы в Mac он снова и снова показывает мне это исключение.

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "dlopen(libclntsh.dylib, 1): image not found". See https://oracle.github.io/odpi/doc/installation.html#macos for help

Я изменил свою переменную среды на bash_profile следующим образом:

export ORACLE_HOME= /opt/oracle/instantclient_12_2/
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

Все еще не работает. Может ли кто-нибудь помочь мне здесь. Спасибо

1 Ответ

0 голосов
/ 13 ноября 2018

Из Инструкции по установке убедитесь, что вы не используете бинарный Python по умолчанию.

Затем установите cx_Oracle на новый python, как вы уже знаете, как.

Наконец, убедитесь, что Instant Client разархивирован и настроен:

mkdir ~/lib
ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib ~/lib/

Нет смысла устанавливать DYLD_LIBRARY_PATH, так как защита SIP macOS перестает работать. Там не было необходимости устанавливать ORACLE_HOME для cx_Oracle с 5 дней cx_Oracle. А LD_LIBRARY_PATH - это, в основном, UNIX, так что не устанавливайте это тоже.

...