inzem
Сен. 8, 2011 13:13:43
os.system тоже не работает
inzem
Сен. 8, 2011 13:18:05
Хотелось бы понять как работает, не понятно почему модуль не хочет подхватывать переменную окружения, которая устанавливается из 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__()
Андрей Светлов
Сен. 8, 2011 13:39:56
os.putenv вызывается перед import cx_Oracle?
Я бы, наверное, сделал симлинки из оракла в /usr/lib и успокоился.
agalen
Сен. 8, 2011 14:30:35
inzem
Путь прописал, все равно не работает.
Чтобы изменения перечитались, нужно вызывать ldconfig.
Проверить из командной строки можно так:
unset LD_LIBRARY_PATH
ldd /путь/cx_Oracle.so
kublo
А если тупо os.system('export ORACLE_BASE=/usr/lib/oracle') и т. д. ?
Такие переменные будут только во временном shell-е, а вызывающий процесс их не увидит.
inzem
Сен. 8, 2011 16:23:53
вот нашел ответ
В /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 попробую.