情况描述:
cx_Oracle 在centos 7版本上运行正常,迁移到Centos8后发现有如下报错:
java
Error:DPI-1047: Cannot locate a 64-bit Oracle Client library:
"libclntsh.so: cannot open shared object file: No such file or directory".
See https://oracle.github.io/odpi/doc/installation.html#linux for help
初步分析:
a)尝试从yum获取libclntsh.so 库文件,并尝试从7版本上看是哪个软件包提供的
发现8的yum源里面并不包含oracle-instantclient-basic这个软件包
b)尝试看报错提示里面的网址,找到对应软件包的下载路径,注意操作系统版本,这是64位Centos 8
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
c)安装软件包后,正常运行
d)参考文档地址:
https://oracle.github.io/odpi/doc/installation.html#linux
总结:
a)操作系统跨大版本迁移要多测试,发现报错要先尝试复现,缩小问题范围
b)对于比较完善的Python库的错误提示,要重视,里面可能会提供较好的解决方式