Oracle Instant Client все еще не работает в Mac OS Catalina 10.15.4

Я установил Oracle Instant Client версии 19.3 на свой Mac Os Catalina версии 10.15.4, но у меня все еще та же ошибка на python3.7 и python3.8:

Источник: (cx_Oracle.DatabaseError) DPI-1047: не удается найти 64-разрядную клиентскую библиотеку Oracle: «dlopen (libclntsh.dylib, 1): не найдено подходящего изображения. Обнаружено: относительные пути файловой системы не разрешены в защищенных программах». См. https://oracle.github.io/odpi/doc/installation.html#macos за помощью (справочную информацию об этой ошибке см. по адресу: http://sqlalche.me/e/4xp6)

вот моя установка:

$: ls-l ~/lib
ls -l ~/lib
total 0
lrwxr-xr-x 1 giacomocallegaro staff 58 22 Apr 09:13 libclntsh.dylib -> /Users/giacomocallegaro/instantclient_19_3/libclntsh.dylib

$: cat .zprofile

Установка PATH для Python 3.8

Исходная версия сохраняется в .zprofile.pysave

PATH = "/ Library / Frameworks / Python.framework / Versions / 3.8 / bin: $ {PATH}" экспорт ПУТЬ

Установка PATH для Python 3.7

Исходная версия сохраняется в .zprofile.pysave

PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH=$PATH:~/instantclient_19_3
export PATH

$: echo $PATH

/Users/giacomocallegaro/.nvm/versions/node/v12.14.1/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/giacomocallegaro/.nvm/versions/node/v12.16.1/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/opt/openssl/bin:/Users/giacomocallegaro/instantclient_19_3:/Users/giacomocallegaro/instantclient_19_3

$: which python:
/usr/bin/python

когда я запускаю sqlplus:

$: sqlplus -v

SQL * Plus: выпуск 19.0.0.0.0 - производственная версия 19.3.0.0.0

Может кто-то помочь мне, пожалуйста?


person Giacomo Callegaro    schedule 27.04.2020    source источник
comment
Вы нашли решение своей проблемы, у меня такая же проблема   -  person naderhat    schedule 25.06.2020


Ответы (3)


После того, как вы загрузите мгновенный клиент отсюда, создайте символическую ссылку в /usr/local/lib папку (где все файлы .dylib хранят свои символические ссылки).

В моем случае я извлек мгновенный клиент в /opt/oracle/instantclient_19_3. Итак, команда:

$ ln -s /opt/oracle/instantclient_19_3/libclntsh.dylib /usr/local/lib/

Однако, когда я пытаюсь создать соединение из python, возникает еще одна проблема:

Error while trying to retrieve text for error ORA-01804

Oracle говорит: Instant Client 19.3 и 18.1 поддерживают macOS Mojave и High Sierra, а у меня macOS Catalina 10.15, не знаю, связано ли это с этим, ошибка 01804 говорит, что информация о часовом поясе недействительна .

Подробнее об этом: http://www.dba-oracle.com/t_ora_01804_start_oracle.htm

РЕДАКТИРОВАТЬ: проблема решена.

После загрузки пакета SQL * Plus мне удалось подключиться и убедиться, что мгновенный клиент работает. Моя проблема с python также была решена, когда я перезапустил IntelliJ (я запускал сервер изнутри, поэтому PATH, возможно, не был обновлен).

person Agoun    schedule 27.09.2020

  • Перейдите на страницу https://www.oracle.com/technical-resources/.
  • Загрузки - ›Oracle Instant Client -› macOS (Intel x86) - ›Базовый пакет
  • В папке загрузки вы найдете папку с именем instantclient_19_3.
  • Добавьте следующее в свой скрипт python
import cx_Oracle

cx_Oracle.init_oracle_client(lib_dir=r'/Users/<username>/Downloads/instantclient_19_3')

Появятся некоторые окна, поэтому перейдите на System preferences --> Security & Privacy --> General, и там вы увидите уведомление. Щелкните open anyway. Вам придется повторить этот последний шаг 3-4 раза.

person Ricky    schedule 04.08.2020

Может быть, ошибка вводит в заблуждение и связана с общей проблемой с Oracle Instant Client на MacOS Catalina? Взгляните на это сообщение в блоге:

Oracle On Tap Гэри

Надеюсь это поможет!

person aurawindsurfing    schedule 08.07.2020