我想通过icrontab在Linux上调度一个任务,任务是用python写的,必须导入cx_Oracle
模块,所以我导出 ORACLE_HOME
和 LD_LIBRARY_PATH
在 .bash_profile 中,但是
它引发了错误:
libclntsh.so.11.1: cannot open shared object file.
由于可以通过在 shell 中发出命令来运行任务,例如:
python a.py # ok
我将 icrontab 中的任务更改为调用我的 Python 脚本的 shell 脚本,但异常再次出现?
# the shell script scheduled in icrontab
#! bash
python a.py
你能帮忙怎么做吗?
最佳答案
上周末我需要使用 cx_Oracle 时遇到了同样的问题。在花了很多时间尝试修改 LD_LIBRARY_PATH 变量以包含 libclntsh.so 所在的 $ORACLE_HOME/lib 目录之后,我最终通过创建从所有 Oracle xlibx.so 库到/lib/xlibx 的符号链接(symbolic link)来解决问题。所以。这当然不是“最干净”的解决方案,但它很有可能在不造成太多麻烦的情况下工作:
cd $ORACLE_HOME/lib
for f in `ls ./*.so*`; do;
sudo ln -s $ORACLE_HOME/lib/$f /lib/$f
done
在我这样做之后,cx_Oracle 就像一个魅力一样工作。
关于oracle - libclntsh.so.11.1 : cannot open shared object file.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708317/