Меня очень озадачивает следующая ситуация: мы с коллегой используем Mac OS X. Я использую 10.15.3, python 2.7.15, GCC 4.2.1, cx_Oracle 7.0.0 с SQL Developer 19.1.0. Она использует 10.14.6, python 2.7.10, GCC 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 "базовой" версией и небольшой настройкой из-за нотариального заверения (https://github.com/oracle/python-cx_Oracle/issues/341#issuecomment-541794557) Я мог бы заставить это работать: файлы .dylib
правильно подобран, и код может подключиться к базе данных.
Для моего коллеги файл не может быть найден. Мы выполнили те же шаги, что и для моего компьютера, загрузили сначала 19, а затем 18 «Базовую» версию (наивно полагая, что это будет связано с версией SQL Developer), разархивировали и добавили ссылку на переменную $LD_LIBRARY_PATH
. Однако ошибка DPI-1047 все еще появляется.
Мы пытались следовать предыдущим решениям на этом или других форумах, но они не подходили и не работали для нас:
- https://github.com/oracle/python-cx_Oracle/issues/210 (с https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html#ic_x64_inst) -> то же самое для нас, за исключением того, что часть «на шаг 3» не применяется -> мы делаем нет
.so
файлов в мгновенной загрузке клиента - DPI-1047: 64-разрядная клиентская библиотека Oracle не может быть загружен - мы проверили, что мы оба используем 64-разрядный питон с помощью
python -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
, остальные в этом потоке применимы к Windows - Как fix: cx_Oracle.DatabaseError: DPI-1047: не удается найти 64-разрядную клиентскую библиотеку Oracle - Python - нет папки / usr / lib / oracle, ни для меня, ни для нее, где нужно было бы установить версия явно; фактически, загруженная папка уже содержит программную ссылку на нужную версию
.dylib
(мы также поигрались с указанием на другие версии.dylib
)
Спасибо за помощь! c.