2017-03-24 17 views

Odpowiedz

2

Pierwsza rzecz pierwsza.

Sprawdź, czy cx_Oracle jest zbudowany na dokładnie tej samej wersji jako klienta Oracle.

import cx_Oracle 
cx_Oracle.clientversion() 

Powinno to zwrócić wersję, którą spodziewa się znaleźć.

Jeśli wersje różnią, należy odbudować go przed prawidłowo wersji.

+0

Mam (11, 2, 0, 3, 0), która jest poprawną wersją. –

+0

@ rijo-simon Ok, czy wypróbowałeś któreś z powiązanych pytań dotyczących rozwiązania? –

+0

Tak, wypróbowałem prawie wszystkie. Żadne z rozwiązań nie zapewniało rozwiązania. –

2

uzyskać natychmiastowy klienta, nie należy ustawiać ORACLE_HOME. Zamiast tego wykonaj następujące czynności:

cd $HOME 
mkdir -p lib 
cd lib 
cp /the/location/to/instantclient_11_2/*dylib* . 
ln -s libclntsh.dylib.11.1 libclntsh.dylib 

Jeśli jesteś w stanie korzystać z Instant Client 12.1 rzeczy są nieco prostsze

cd $HOME 
mkdir -p lib 
cd lib 
ln -s /the/location/to/instantclient_12_1/libclntsh.dylib.12.1 libclntsh.dylib 

Jeśli również pobrać i rozpakować SQL * Plus pakiet można sprawdzić, czy klient instalacja działa poprawnie.

+0

Zrobiłem powyższe kroki i to nie pomogło. Co w takim razie powinien ORACLE_HOME? –

+0

ORACLE_HOME nie powinien zakładać się w ogóle. –

+0

Rozbieranie ORACLE_HOME nie pomogło. Problem pozostaje. –

1

Czy próbowałeś ustalenie, w jaki sposób zostały podłączenia? Wygląda na to, że poprawnie go skonfigurowałeś.

proszę spróbować następujących sposobów (wypełnić w swoim własnym informacji):

ip_addr = 'ip address' 
port = 1521 
sid = 'sid' 
dsn_tns = cx_Oracle.makedsn(ip_addr, port, sid) 
db = cx_Oracle.connect('username', 'password', dsn_tns) 

Jeśli to nie zadziała, należy upewnić się, że LD_LIBRARY_PATH jest ustawiony prawidłowo.