Найти - Пользователи
Полная версия: проблема с os.environ
Начало » Python для новичков » проблема с os.environ
1 2
inzem
os.system тоже не работает
inzem
Хотелось бы понять как работает, не понятно почему модуль не хочет подхватывать переменную окружения, которая устанавливается из python
Это ошибка
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)

кусок base.py, на котором ошибка

try:
import cx_Oracle as Database
except ImportError, e:
from django.core.exceptions import ImproperlyConfigured
raise ImproperlyConfigured(“Error loading cx_Oracle module: %s” % e)

весь cx_Oracle.py

def __bootstrap__():
global __bootstrap__, __loader__, __file__
import sys, pkg_resources, imp
__file__ = pkg_resources.resource_filename(__name__,'cx_Oracle.so')
__loader__ = None; del __bootstrap__, __loader__
imp.load_dynamic(__name__,__file__)
__bootstrap__()
Андрей Светлов
os.putenv вызывается перед import cx_Oracle?
Я бы, наверное, сделал симлинки из оракла в /usr/lib и успокоился.
agalen
inzem
Путь прописал, все равно не работает.
Чтобы изменения перечитались, нужно вызывать ldconfig.

Проверить из командной строки можно так:
unset LD_LIBRARY_PATH
ldd /путь/cx_Oracle.so

kublo
А если тупо os.system('export ORACLE_BASE=/usr/lib/oracle') и т. д. ?
Такие переменные будут только во временном shell-е, а вызывающий процесс их не увидит.
inzem
вот нашел ответ
В /etc/init.d/apache2
ENV=“env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin ORACLE_HOME=/usr/lib/oracle/10.1.0.5/client/lib ORACLE_BASE=/usr/lib/oracle LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.5/client/lib/lib:/lib:/usr/lib”
И так заработало.
С ldconfig попробую.
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