Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Linux。连接到Oracle。cx_Oracle.DatabaseError:DPI-1047找不到64位Oracle客户端库:“0”;libclntsh.so_Python_Linux_Oracle_Cx Oracle - Fatal编程技术网

Python Linux。连接到Oracle。cx_Oracle.DatabaseError:DPI-1047找不到64位Oracle客户端库:“0”;libclntsh.so

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>:&

我有错误“cx_Oracle.DatabaseError:DPI-1047:找不到64位Oracle客户端库:”libclntsh.so:无法打开共享对象文件:没有这样的文件或目录。请参阅以获取帮助”

我看到和

我总是在Windows上工作,只在Linux系统上学习。我需要帮助解决这个问题。从python连接到Oracle:

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谢谢!