Python Linux。连接到Oracle。cx_Oracle.DatabaseError:DPI-1047找不到64位Oracle客户端库:“0”;libclntsh.so
我有错误“cx_Oracle.DatabaseError:DPI-1047:找不到64位Oracle客户端库:”libclntsh.so:无法打开共享对象文件:没有这样的文件或目录。请参阅以获取帮助” 我看到和 我总是在Windows上工作,只在Linux系统上学习。我需要帮助解决这个问题。从python连接到Oracle:Python Linux。连接到Oracle。cx_Oracle.DatabaseError:DPI-1047找不到64位Oracle客户端库:“0”;libclntsh.so,python,linux,oracle,cx-oracle,Python,Linux,Oracle,Cx Oracle,我有错误“cx_Oracle.DatabaseError:DPI-1047:找不到64位Oracle客户端库:”libclntsh.so:无法打开共享对象文件:没有这样的文件或目录。请参阅以获取帮助” 我看到和 我总是在Windows上工作,只在Linux系统上学习。我需要帮助解决这个问题。从python连接到Oracle: import cx_Oracle con = cx_Oracle.connect('<USER>/<PASSWORD>@<HOST>:&
import cx_Oracle
con = cx_Oracle.connect('<USER>/<PASSWORD>@<HOST>:<PORT>/<SID>')
Linux
user@postgresql:~$ cat /proc/version
Linux version 5.3.0-46-generic (buildd@lgw01-amd64-003) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #38-Ubuntu SMP Fri Mar 27 17:37:05 UTC 2020
问题解决了。也许它将是有益的: 下载rpm(oracle-instantclient12.2-basic、oracle-instantclient12.2-devel、oracle-instantclient12.2-devel) 当然,只需要oracle-instantclient12.2
sudo apt-get install oracle-instantclient12.2-basic-12.2.0.*
只需添加到路径:
user@postgresql:~$export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
user@postgresql:~$sudo ldconfig
user@postgresql:~$ sudo nano /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
问题解决了。也许它将是有益的: 下载rpm(oracle-instantclient12.2-basic、oracle-instantclient12.2-devel、oracle-instantclient12.2-devel) 当然,只需要oracle-instantclient12.2
sudo apt-get install oracle-instantclient12.2-basic-12.2.0.*
只需添加到路径:
user@postgresql:~$export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
user@postgresql:~$sudo ldconfig
user@postgresql:~$ sudo nano /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
永远不要为即时客户端设置ORACLE_主页。它不是Oracle home安装。只需设置您的库搜索路径,最好像您那样使用
ldconfig
,如下所示。使用此设置,您不需要设置LD\u LIBRARY\u路径
。此外,您应该使用19c,它实际上是12c线路的重命名终端版本。它连接到与12.2即时客户端相同的DB版本。@Christopher Jones,谢谢。我很惊讶,在教学中没有关于甲骨文的消息。现在,我明白了。请告诉我,需要在“路径”中写入instantclient的路径吗?在Linux上,只有安装了带有二进制文件的工具时,才需要路径。(有一个特殊的例外,19c sqlplus RPM包将创建一个链接,因此不需要为该二进制文件创建路径)@Christopher Jones谢谢!永远不要为即时客户端设置ORACLE_主页。它不是Oracle home安装。只需设置您的库搜索路径,最好像您那样使用ldconfig
,如下所示。使用此设置,您不需要设置LD\u LIBRARY\u路径
。此外,您应该使用19c,它实际上是12c线路的重命名终端版本。它连接到与12.2即时客户端相同的DB版本。@Christopher Jones,谢谢。我很惊讶,在教学中没有关于甲骨文的消息。现在,我明白了。请告诉我,需要在“路径”中写入instantclient的路径吗?在Linux上,只有安装了带有二进制文件的工具时,才需要路径。(有一个特殊的例外,19c sqlplus RPM包将创建一个链接,因此不需要为该二进制文件创建路径)@Christopher Jones谢谢!