调试步骤:
1。查找要在其上执行ldd的文件>>> import imp
>>> imp.find_module("cx_Oracle")
(<_io.bufferedreader name="/opt/data-tools/Anaconda/lib/python3.6/site-packages/cx_Oracle.cpython-36m-x86_64-linux-gnu.so">, '/opt/data-tools/Anaconda/lib/python3.6/site-packages/cx_Oracle.cpython-36m-x86_64-linux-gnu.so', ('.cpython-36m-x86_64-linux-gnu.so', 'rb', 3))
2。执行lddldd /opt/data-tools/Anaconda/lib/python3.6/site-packages/cx_Oracle.cpython-36m-x86_64-linux-gnu.so
libclntsh.so.12.1 => not found查找libclntsh.so.12.1(或您的案例中缺少的任何内容)。
确保包含libclntsh.so.12.1的目录位于LD_LIBRARY_PATH中。如果它不在路径中,则添加它。export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/product/12.1.0/lib/
5。卸载并安装/opt/data-tools/Anaconda/bin/pip uninstall cx_Oracle==5.1.3
export ORACLE_HOME=/opt/oracle/product/12.1.0 && /opt/data-tools/Anaconda/bin/pip install cx_Oracle==5.1.3 --no-cache-dir
6个。检查lddldd /opt/data-tools/Anaconda/lib/python3.6/site-packages/cx_Oracle.cpython-36m-x86_64-linux-gnu.so
linux-vdso.so.1 => (0x00007ffd89ca2000)
libclntsh.so.12.1 => /opt/oracle/product/12.1.0/lib/libclntsh.so.12.1 (0x00007f1a3a4ba000)