Найти - Пользователи
Полная версия: проблема с os.environ
Начало » Python для новичков » проблема с os.environ
1 2
goblin_maks
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
вооще такие вещи делаются через sys.path
import sys
sys.path.appen('/home/ORA')
import cx_Oracle
goblin_maks
знаю что так тоже можно..но это не помогло…все тоже самое. если сделать print sys.path то мой путь там есть..а ошибка таже.. еще выяснил что эта проблема возникает только с cx_Oracle
goblin_maks
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
r1s
goblin_maks
каким образом можно добавить переменную окружения…так чтобы небыло необходимости делать эту операцию вновь..добавление записи в соответствующий файл не катит…OS: Debian, Kubuntu
Соответствующий файл это какой? Переменные окружения можно задать в /etc/profile
slivlen
Пропиши путь в ld.conf.
inzem
похожая беда, запускаю 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
Пути к библиотекам в линуксе настраиваются здесь: /etc/ld.so.conf или в /etc/ld.so.conf.d/*.conf

Еще как вариант - собрать модуль cx_Oracle с установленной переменной FORCE_RPATH.
inzem
Путь прописал, все равно не работает.
kublo
А если тупо os.system('export ORACLE_BASE=/usr/lib/oracle') и т. д. ?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB