libclntsh.so.12.1的CX_Oracle导入错误

Shu*_*deo 1 python oracle cx-oracle oracle11g importerror

我在我的配置中使用了Oracle 11gUbuntu 16.04,它的工作非常好.

以前我尝试安装Oracle 12c,这是一些错误,所以我删除它并安装11克.

现在,我的问题是,当我尝试使用import cx_Oraclepython,它会给出导入错误libclntsh.so.12.1.

这是整个输出:

>>> import cx_Oracle
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libclntsh.so.12.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的.bashrc文件包含以下条目:

export PATH="/home/marvin/anaconda2/bin:$PATH"
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

为什么还要尝试Oracle 12c?11g配置或12c卸载中是否有错误?

我已经尝试卸载并重新安装cx_oracle通过pip.

Ant*_*nga 5

在要加载的cx_Oracle共享库文件上运行ldd命令.您应该能够使用"imp"模块来查找正在加载的cx_Oracle模块的位置,如下所示:

import imp
imp.find_module("cx_Oracle")
Run Code Online (Sandbox Code Playgroud)

您可能会发现它尝试加载的模块位于您没想到的地方!

此外,当您运行命令pip install cx_Oracle确认它实际正在编译以及正在链接的文件时.

我希望其中一个提示可以帮助您找出问题与您的配置有关.