Linux. Подключи от Oracle. cx_ Oracle .DatabaseError: DPI-1047 Не удается найти 64-битную Oracle клиентскую библиотеку: "libclnt sh .so - PullRequest
0 голосов
/ 11 апреля 2020

У меня ошибка "cx_ Oracle .DatabaseError: DPI-1047: невозможно найти 64-разрядную Oracle клиентскую библиотеку:" libclnt sh .so: невозможно открыть общий объектный файл: такой файл или каталог отсутствует " См. https://oracle.github.io/odpi/doc/installation.html#linux для получения справки "

Я видел https://oracle.github.io/odpi/doc/installation.html#oracle -instant-client-zip и Как исправить: cx_ Oracle. DatabaseError: DPI-1047: Невозможно найти 64-разрядную Oracle клиентскую библиотеку - Python

Я всегда работаю на Windows и только на Linux системе. Мне нужна помощь по этому вопросу. Подключитесь к Oracle с python:

import cx_Oracle
con = cx_Oracle.connect('<USER>/<PASSWORD>@<HOST>:<PORT>/<SID>')

Я никогда не подключался с Linux. Это первый раз.

user@postgresql:~/opt$ cd oracle
user@postgresql:~/opt/oracle$ unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
Archive:  instantclient-basic-linux.x64-12.2.0.1.0.zip
inflating: instantclient_12_2/adrci  
inflating: instantclient_12_2/BASIC_README  
inflating: instantclient_12_2/genezi  
inflating: instantclient_12_2/libclntshcore.so.12.1  
inflating: instantclient_12_2/libclntsh.so.12.1  
inflating: instantclient_12_2/libipc1.so  
inflating: instantclient_12_2/libmql1.so  
inflating: instantclient_12_2/libnnz12.so  
inflating: instantclient_12_2/libocci.so.12.1  
inflating: instantclient_12_2/libociei.so  
inflating: instantclient_12_2/libocijdbc12.so  
inflating: instantclient_12_2/libons.so  
inflating: instantclient_12_2/liboramysql12.so  
inflating: instantclient_12_2/ojdbc8.jar  
inflating: instantclient_12_2/uidrvci  
inflating: instantclient_12_2/xstreams.jar
user@postgresql:~$ sudo apt install libaio1
user@postgresql:/etc/ld.so.conf.d$ sudo nano oracle-instantclient.conf
user@postgresql:/etc/ld.so.conf.d$ sudo ldconfig
user@postgresql:/etc/ld.so.conf.d$ sudo export 
LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH

Linux

user@postgresql:~$ cat /proc/version
Linux version 5.3.0-46-generic (buildd@lgw01-amd64-003) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #38-Ubuntu SMP Fri Mar 27 17:37:05 UTC 2020

1 Ответ

0 голосов
/ 12 апреля 2020

Проблема решена. Может быть, это будет здорово: загрузить rpm (oracle -instantclient12.2-basi c, oracle -instantclient12.2-devel, oracle -instantclient12.2-devel).

из конечно, нужно только oracle -instantclient12.2

sudo apt-get install oracle-instantclient12.2-basic-12.2.0.*

Нужно только добавить в PATH:

user@postgresql:~$export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
user@postgresql:~$sudo ldconfig
user@postgresql:~$ sudo nano  /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...