mac node oracle,将Python3.5(Mac OS X El Capitan)连接到Oracle集群(远程)
我正在嘗試將Python3.5(Mac OS X El Capitan)連接到Oracle集群(遠程)。
對于安裝cx_Oracle,我設置了:
export ORACLE_HOME=/Applications/oracle/instantclient_11_2
export LD_LIBRARY_PATH=$ORACLE_HOME
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH
現在我得到錯誤:
**Unable to acquire Oracle environment handle**
我不知道為什么會這樣。有任何想法嗎?
我什至創建文件tnsnames.ora并將其放入/Applications/oracle/instantclient_11_2/network/admin/tnsnames.ora
orcl=
(description=
(address_list=
(address = (protocol = TCP)(host = xxx.xxx.xxx.xxx)(port = 1521))
)
(connect_data =
(service_name=oratst)
)
)
我的python代碼:
import traceback
import os
os.environ["ORACLE_HOME"] = "/Applications/oracle/instantclient_11_2"
os.environ["LD_LIBRARY_PATH"] = "/Applications/oracle/instantclient_11_2"
os.environ["DYLD_LIBRARY_PATH"] = "/Applications/oracle/instantclient_11_2"
os.environ["LD_LIBRARY_PATH"] = "/Applications/oracle/instantclient_11_2"
import cx_Oracle
try:
connection = cx_Oracle.Connection('user', 'password', cx_Oracle.makedsn('remote_ip', 1521, 'sid'))
except Exception as e:
print(type(e))
print(e)
traceback.print_tb(e.__traceback__)
PS cx_Oracle-是非常奇怪的模塊。嘗試訪問以下目錄中的庫:
/ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
/ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
我從來沒有這個路徑,但創建了符號鏈接。
解決方案
ln -s libclntsh.dylib.11.1 libclntsh.dylib
mkdir ~/lib
ln -s /wherever/instantclient_11_2/{libclntsh.dylib.11.1,libnnz11.dylib,libociei.dylib} ~/lib/
El Capitan破壞了DYLD_LIBRARY_PATH,所以沒有意義設置它:(也沒有意義設置Linux LD_LIBRARY_PATH變量。
如果創建tnsnames.ora文件,請將TNS_ADMIN設置為該目錄所在的目錄。不要在運行Instant Client的過程中設置ORACLE_HOME(盡管您可能需要在cx_Oracle安裝過程中對其進行臨時設置。請將其設置為將Instant Client basic解壓縮的目錄) &sdk到,例如/ Applications / oracle / instantclient_11_2)
總結
以上是生活随笔為你收集整理的mac node oracle,将Python3.5(Mac OS X El Capitan)连接到Oracle集群(远程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android qml 菜单,QML
- 下一篇: java oracle 分区查询_深入学