Форум сайта python.su
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
Офлайн
вооще такие вещи делаются через sys.path
import sys
sys.path.appen('/home/ORA')
import cx_Oracle
Офлайн
знаю что так тоже можно..но это не помогло…все тоже самое. если сделать print sys.path то мой путь там есть..а ошибка таже.. еще выяснил что эта проблема возникает только с cx_Oracle
Отредактировано (Апрель 15, 2009 12:49:46)
Офлайн
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
Офлайн
goblin_maksСоответствующий файл это какой? Переменные окружения можно задать в /etc/profile
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
Офлайн
Пропиши путь в ld.conf.
Офлайн
похожая беда, запускаю 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’)
Делал, не помогает.
Посоветуйте, что нужно сделать?
Офлайн
Пути к библиотекам в линуксе настраиваются здесь: /etc/ld.so.conf или в /etc/ld.so.conf.d/*.conf
Еще как вариант - собрать модуль cx_Oracle с установленной переменной FORCE_RPATH.
Офлайн
Путь прописал, все равно не работает.
Офлайн
А если тупо os.system('export ORACLE_BASE=/usr/lib/oracle') и т. д. ?
Офлайн