Я пытаюсь подключить python cx_Oracle к клиентской библиотеке oracle в Centos 8, я выполнил шаги, указанные в https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html, пакеты rpm не работают, поэтому я использовал zip-пакет и настроил LD_LIBRARY_PATH в каталог, в который я распаковываю файлы Oracle, в данном случае: / opt / oracle / lib.
Когда я запускаю скрипт, я получаю:
cx_Oracle.DatabaseError: DPI-1047: не удается найти 64-разрядную клиентскую библиотеку Oracle: /opt/oracle/lib/libclntsh.so: невозможно открыть файл общих объектов: нет такого файла или каталога. См. https://cx-oracle.readthedocs.io/en/latest/. user_guide / installation.html для справки
но если я запускаю: найдите /opt/oracle/lib/libclntsh. так что он работает, и файл там, переменная env правильная в соответствии с сообщением об ошибке, но скрипт все еще не работает, если у кого-то есть предложения по исправлению этого Я был бы очень признателен.
Обновление: когда я устанавливаю DPI_DEBUG_LEVEL = 64, я получаю следующий вывод:
ODPI [04293] 2021-04-10 15:51:06.109: ODPI-C 4.1.0
ODPI [04293] 2021-04-10 15:51:06.109: debugging messages initialized at level 64
ODPI [04293] 2021-04-10 15:51:06.110: Context Parameters:
ODPI [04293] 2021-04-10 15:51:06.110: Environment Variables:
ODPI [04293] 2021-04-10 15:51:06.110: ORACLE_HOME => "/opt/oracle"
ODPI [04293] 2021-04-10 15:51:06.110: LD_LIBRARY_PATH => "/opt/oracle/lib"
ODPI [04293] 2021-04-10 15:51:06.110: check module directory
ODPI [04293] 2021-04-10 15:51:06.110: module name is /usr/local/lib64/python3.6/site-packages/cx_Oracle.cpython-36m-aarch64-linux-gnu.so
ODPI [04293] 2021-04-10 15:51:06.110: load in dir /usr/local/lib64/python3.6/site-packages
ODPI [04293] 2021-04-10 15:51:06.110: load with name /usr/local/lib64/python3.6/site-packages/libclntsh.so
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: /usr/local/lib64/python3.6/site-packages/libclntsh.so: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with OS search heuristics
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.19.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.19.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.18.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.18.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.12.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.12.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.11.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.11.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.20.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.20.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: load with name libclntsh.so.21.1
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: libclntsh.so.21.1: cannot open shared object file: No such file or directory
ODPI [04293] 2021-04-10 15:51:06.110: check ORACLE_HOME
ODPI [04293] 2021-04-10 15:51:06.110: load in dir /opt/oracle/lib
ODPI [04293] 2021-04-10 15:51:06.110: load with name /opt/oracle/lib/libclntsh.so
ODPI [04293] 2021-04-10 15:51:06.110: load by OS failure: /opt/oracle/lib/libclntsh.so: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "cdr_parser.py", line 387, in <module>
main()
И сценарий все еще не работает.
Обновление 2: когда я запускаю: file /opt/oracle/lib/libclntsh.so, я получаю:
/opt/oracle/lib/libclntsh.so: symbolic link to libclntsh.so.21.1
и запустив ldd /opt/oracle/lib/libclntsh. поэтому вывод:
not a dynamic executable
Кроме того, я проверил установку libaio и liabio-devel, и это правильно, моя версия Os - 64-битная, а instanclient - тоже 64-битная.