Oracle DPI-1047 в macOS 10.14.6 с Python 2.7.10 - PullRequest
0 голосов
/ 05 мая 2020

Меня очень озадачивает следующая ситуация: мы с коллегой оба используем Ma c OS X. Я использую 10.15.3, python 2.7.15, G CC 4.2.1, cx_ Oracle 7.0.0 с SQL Developer 19.1.0. Она использует 10.14.6, python 2.7.10, G CC 4.2.1, cx_ Oracle 7.3.0 с SQL Developer 18.3.0.

У нас есть простой сценарий python, который подключается к базе данных через cx_Oracle. Получили обычную ошибку DPI-1047. Я выполнил инструкции здесь https://oracle.github.io/odpi/doc/installation.html#macos и с последней версией 19 "Basi c" и немного изменил настройки из-за нотариального заверения (https://github.com/oracle/python-cx_Oracle/issues/341#issuecomment -541794557 ). может заставить его работать: файлы .dylib правильно подобраны, и код может подключаться к базе данных.

Для моего коллеги файл не может быть найден. Мы выполнили те же шаги, что и для моего компьютера, загрузили сначала версию 19, а затем 18 "Basi c" (наивно полагая, что она будет связана с версией SQL Developer), разархивировали и добавили ссылку на $LD_LIBRARY_PATH переменная. Однако ошибка DPI-1047 все еще появляется.

Мы пытались следовать предыдущим решениям на этом или других форумах, но они не подходили или не работали для нас:

Спасибо за вашу помощь ! c.

1 Ответ

1 голос
/ 06 мая 2020

Итак, у вас проблема на компьютере 10.14.6 (Mojave).

Моя первоначальная мысль заключалась в том, что вы используете ОС по умолчанию Python. Это не сработает, потому что Apple заблокировала его. Из инструкций по установке : «Убедитесь, что вы не используете пакет Python. Он имеет ограниченные права и не сможет загрузить Oracle клиентские библиотеки». (Я не / не могу рискнуть взломать Instant Client, чтобы посмотреть, можно ли заставить его работать)

Однако откуда взялось Python 2.7.10? Моя система по умолчанию: Python 2.7.16.

Не устанавливать LD_LIBRARY_PATH. Вместо этого в моем каталоге ~ / lib есть только одна символическая c ссылка:

libclntsh.dylib -> /Users/cjones/instantclient_19_3/libclntsh.dylib

Все проблемы с конфигурацией связаны с постоянно ужесточающимися требованиями безопасности Apple. Надеюсь, следующий выпуск Oracle Instant Client упростит его использование.

SQL Разработчик почти не имеет отношения к использованию Python cx_ Oracle (если вы не используете толстые JDB C соединения в SQL Developer, что бывает редко).

И не следуйте инструкциям Linux или Windows в macOS!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...