cx_Oracle.InterfaceError:无法获取Oracle环境句柄Mac
我安装了cx_Oracle,并且可以成功导入它。但是,当我尝试建立Oracle连接,我得到这个错误:cx_Oracle.InterfaceError:无法获取Oracle环境句柄Mac
Traceback (most recent call last): File "<stdin>", line 1, in <module> cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle
我的操作系统是MacOSX的,我的ORACLE_HOME指向instantclient_11_2。
第一件事第一件事。
检查您的cx_oracle是否与Oracle客户端的版本完全相同。
import cx_Oracle
cx_Oracle.clientversion()
这应该返回它期望找到的版本。
如果版本不同,您应该根据正确的版本重新编译它。
对于即时客户端,请勿设置ORACLE_HOME。相反,按照下列指示:
cd $HOME
mkdir -p lib
cd lib
cp /the/location/to/instantclient_11_2/*dylib* .
ln -s libclntsh.dylib.11.1 libclntsh.dylib
如果你能够使用即时客户端12.1事情简单一点
cd $HOME
mkdir -p lib
cd lib
ln -s /the/location/to/instantclient_12_1/libclntsh.dylib.12.1 libclntsh.dylib
如果您也可以下载并解压缩SQL * Plus的包,你可以验证你的客户安装工作正常。
我做了上述步骤,并没有帮助。在这种情况下ORACLE_HOME应该是什么? –
ORACLE_HOME根本不应该下注。 –
取消设置ORACLE_HOME没有帮助。问题依然存在。 –
你试过修复你连接的方式吗?这听起来像你设置正确。
请尝试以下方法(在你自己的信息填写):
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)
如果还是不行,请确保您的LD_LIBRARY_PATH
设置正确。
我得到了(11,2,0,3,0),这是正确的版本。 –
@ rijo-simon好的,你有没有试过解决相关的问题? –
是的,尝试几乎所有的人。没有任何解决方案提供了解决方案。 –