libclntsh.so.11.1: не может открыть файл общего объекта.

Я хочу запланировать задачу на Linux icrontab, и задача записана в Python и должна импортировать cx_Oracle модуль, таким образом, я экспортирую ORACLE_HOME и LD_LIBRARY_PATH в .bash_profile, но это повышает ошибку:

libclntsh.so.11.1: не может открыть файл общего объекта.

Так как нормально работать, задача дают команду в оболочке как:

python a.py  # ok

Я изменяю задачу в icrontab в сценарий оболочки, которые вызывают мой сценарий Python, но исключение повторилось?

# the shell script scheduled in icrontab
#! bash 
python a.py    

Вы могли помочь, как сделать с ним?

23
задан Omar Einea 31 March 2018 в 11:33
поделиться

3 ответа

Возможно, вы хотите указать PATH - а также ORACLE_HOME и LD_LIBRARY_PATH - чтобы cron (1) знал, где найти двоичные файлы.
Прочтите "5 среду Crontab" здесь .

17
ответ дан 29 November 2019 в 02:30
поделиться

Cron не загружает профиль пользователя при выполнении задачи, и вы должны явно включить профиль в сценарий оболочки.

Пример документации

3
ответ дан 29 November 2019 в 02:30
поделиться

I столкнулся с той же проблемой на прошлых выходных, когда мне нужно было использовать cx_Oracle. Потратив много времени на попытки изменить переменную LD_LIBRARY_PATH, чтобы включить директорию $ ORACLE_HOME / lib, где находится libclntsh.so, я решил проблему, создав символические ссылки из всех библиотек Oracle xlibx.so в / lib / xlibx. .так. Это, конечно, не самое «чистое» решение, но у него есть хорошие шансы работать, не вызывая особых проблем:

 cd $ORACLE_HOME/lib
 for f in `ls ./*.so*`; do;
   sudo ln -s $ORACLE_HOME/lib/$f /lib/$f 
 done

После того, как я это сделал, cx_Oracle заработал как шарм.

1
ответ дан 29 November 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: