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
无法加载Python3 cx Oracle客户端库:“0”;libclntsh.so“;在Linux上_Python_Linux_Database_Cx Oracle_Sles - Fatal编程技术网

无法加载Python3 cx Oracle客户端库:“0”;libclntsh.so“;在Linux上

无法加载Python3 cx Oracle客户端库:“0”;libclntsh.so“;在Linux上,python,linux,database,cx-oracle,sles,Python,Linux,Database,Cx Oracle,Sles,通过搜索,我发现了类似的问题。然而,以前的解决方案似乎以Windows为中心,而不是Linux 1) Python版本:Python 3.4.6 2) 操作系统版本:Linux SLES 12.3 3) Oracle数据库版本:11.2 4) Oracle客户端:64位11.2即时客户端指示灯,cx Oracle 6.4.1 5) 利巴约: S | Name | Summary

通过搜索,我发现了类似的问题。然而,以前的解决方案似乎以Windows为中心,而不是Linux

1) Python版本:Python 3.4.6

2) 操作系统版本:Linux SLES 12.3

3) Oracle数据库版本:11.2

4) Oracle客户端:64位11.2即时客户端指示灯,cx Oracle 6.4.1

5) 利巴约:

S  | Name          | Summary                                                    | Type
---+---------------+------------------------------------------------------------+--------
i+ | libaio-devel  | Development Files for Linux-native Asynchronous I/O Access | package
i  | libaio1       | Linux-Native Asynchronous I/O Access Library               | package
   | libaio1-32bit | Linux-Native Asynchronous I/O Access Library               | package
6) Oracle客户端位置:/opt/pyora/Oracle_11.2/instantclient_11_2

drwxrwxrwx 1 virtual wheel       346 Oct 23 07:48 .
drwxrwxrwx 1 virtual wheel       124 Oct 23 07:47 ..
-rwxrwxrwx 1 virtual wheel     25420 Aug 24  2013 adrci
-rwxrwxrwx 1 virtual wheel       449 Aug 24  2013 BASIC_LITE_README
-rwxrwxrwx 1 virtual wheel       439 Aug 24  2013 BASIC_README
-rwxrwxrwx 1 virtual wheel     47860 Aug 24  2013 genezi
-rwxrwxrwx 1 virtual wheel  53865194 Oct 22 16:44 libclntsh.so
-rwxrwxrwx 1 virtual wheel  53865194 Aug 24  2013 libclntsh.so.11.1
-rwxrwxrwx 1 virtual wheel   7996693 Aug 24  2013 libnnz11.so
-rwxrwxrwx 1 virtual wheel   1973074 Aug 24  2013 libocci.so.11.1
-rwxrwxrwx 1 virtual wheel 118738042 Aug 24  2013 libociei.so
-rwxrwxrwx 1 virtual wheel   9897206 Aug 24  2013 libociicus.so
-rwxrwxrwx 1 virtual wheel    164942 Aug 24  2013 libocijdbc11.so
-rwxrwxrwx 1 virtual wheel   2091135 Aug 24  2013 ojdbc5.jar
-rwxrwxrwx 1 virtual wheel   2739616 Aug 24  2013 ojdbc6.jar
-rwxrwxrwx 1 virtual wheel    192365 Aug 24  2013 uidrvci
-rwxrwxrwx 1 virtual wheel     66779 Aug 24  2013 xstreams.jar
7) 下面的代码设置环境变量并尝试建立连接:(从python interactive shell运行)

8) 以下是收到的错误: 标准用户-

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help
Python 3:

Python 3.4.6 (default, Mar 01 2017, 16:52:22) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.architecture()
('64bit', 'ELF')
>>>

在启动应用程序之前设置库搜索路径。我建议使用
ldconfig
,如ODPI-C安装链接上所示,并使用实际版本

使用Instant Client时,不要设置ORACLE_HOME或ORACLE_BASE。为什么要在应用程序内部设置路径


我还建议使用Instant Client 18.3,它可以连接到Oracle Database 11.2以后的版本

首先想到的是(不使用SUSE或Oracle产品)您是否选择了正确的体系结构?32位对64位?哦,我真希望我能做出不使用Oracle或SLES的决定,但遗憾的是,我被引导到。Oracle客户端和Python 3都是64位的。这实际上是我检查的第一件事,因为这很容易出错。用架构信息更新了上面的问题。谢谢你,你是摇滚明星!!!你的建议奏效了。让我解释一下我们为什么要这么做。第一。。我不是DBA,尤其是Oracle。当我尝试使用11.x和12.x版本的数据库时,连接速度会非常慢。为了在我的工作站上解决这个问题,我在脚本运行时设置了路径。这不能很好地转换到服务器上。因为我们没有Oracle18DBS,所以我没有使用该客户端。但根据您的建议,它与旧的DBs配合良好,因此我将相应地更新我们的程序。-PT1PT2-至于使用ORACLE_HOME和ORACLE_BASE,这些是我在其他post解决方案中看到的其他建议。我曾尝试与老客户一起设置路径和LD_LIBRARY_路径,但仍然存在问题。因此,为了权宜之计,我回到了剧本中的设置。。没有别的了。再次感谢。@Christopher Jones。。你好,琼斯。我们的Linux服务器上没有安装任何即时客户端。我可以将现有的oracle版本与“cx_oracle”一起使用吗?因为我们没有安装即时客户端的灵活性。请帮助我提供任何建议,我们如何在没有即时连接的情况下连接cx_Oracleclient@Majisto. 通过更改环境变量(如ORACLE_HOME、ORACLE_BASE),脚本运行正常吗?您能帮我了解一些语法吗cx\U Oracle安装说明如下:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libnnz11.so: cannot open shared object file: No such file or directory
libaio-devel-0.3.109-17.15.x86_64
libaio1-0.3.109-17.15.x86_64
Python 3.4.6 (default, Mar 01 2017, 16:52:22) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.architecture()
('64bit', 'ELF')
>>>