goblin_maks
Апрель 15, 2009 09:07:06
OS: ubuntu 7.1
выполняю следующие действия:
import os
print os.environ #здесь видим что ключ LD_LIBRARY_PATH отсутствует.
os.environ['LD_LIBRARY_PATH']=['/home/ORA']
print os.environ #здесь он уже присутствует, и соответствует заданому
import cx_Oracle
ошибка на шаге import cx_Oracle, libclntsh.so.10.1: cannot open shared object file: No such file or directory
если делаю export LD_LIBRARY_PATH=/home/ORA а потом запускаю скрипт..то все ок..в чем может быть проблема?
bobry
Апрель 15, 2009 11:19:36
вооще такие вещи делаются через sys.path
import sys
sys.path.appen('/home/ORA')
import cx_Oracle
goblin_maks
Апрель 15, 2009 12:30:31
знаю что так тоже можно..но это не помогло…все тоже самое. если сделать print sys.path то мой путь там есть..а ошибка таже.. еще выяснил что эта проблема возникает только с cx_Oracle
goblin_maks
Апрель 25, 2009 01:09:58
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
r1s
Апрель 26, 2009 09:52:46
goblin_maks
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
Соответствующий файл это какой? Переменные окружения можно задать в /etc/profile
slivlen
Апрель 27, 2009 09:50:39
Пропиши путь в ld.conf.
inzem
Сен. 8, 2011 10:10:03
похожая беда, запускаю django с cx_oracle через wsgi.
export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=/usr/lib/oracle/10.1.0.5/client/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
Если запускаю из консоли с этими переменными, то все хорошо запускую, если без них, то ошибки.
File “/usr/local/lib/python2.6/dist-packages/django/db/backends/oracle/base.py”, line 46, in <module>
raise ImproperlyConfigured(“Error loading cx_Oracle module: %s” % e)
ImproperlyConfigured: Error loading cx_Oracle module: libclntsh.so.10.1: cannot open shared object file: No such file or director
libclntsh.so.10.1 находится в /usr/lib/oracle/10.1.0.5/client/lib/lib
Когда django запускаешь через developer сервер, то переменные окружения,которые были определены в консоли скрипту передаются. Когда через апач, то он очищает все переменные перед запуском скрипта.
в sys.path добавлял, что еще сделать не понимаю.
ld.conf у себя не нашел.
os.environ = ‘/usr/lib/oracle/10.1.0.5/client/lib/lib:/lib:/usr/lib’
os.putenv('LD_LIBRARY_PATH', ‘/usr/lib/oracle/10.1.0.5/client/lib/lib:/lib:/usr/lib’)
Делал, не помогает.
Посоветуйте, что нужно сделать?
agalen
Сен. 8, 2011 11:09:49
Пути к библиотекам в линуксе настраиваются здесь: /etc/ld.so.conf или в /etc/ld.so.conf.d/*.conf
Еще как вариант - собрать модуль cx_Oracle с установленной переменной FORCE_RPATH.
inzem
Сен. 8, 2011 11:37:20
Путь прописал, все равно не работает.
kublo
Сен. 8, 2011 11:45:12
А если тупо os.system('export ORACLE_BASE=/usr/lib/oracle') и т. д. ?