Задать вопрос
@GDApsy
программирование на python;linux

Модификация переменной среды LD_LIBRARY_PATH интерпритатора Python из bash-скрипта

В конфигурации python 2.7+psycopg2+PostgreSQL 9.2 проявляется следующая проблема: python не может загрузить модуль psycopg2, так как в переменных среды Python не прописаны пути к библиотекам PostgreSQL 9.2. Как решение предлагается написать скрипт,являющийся хуком, срабатывающим при загрузке изменений локального репозитория в репозиторий Git на OpenShift. В нем должна быть строка: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rh/postgresql92/root/usr/lib64/
Этот код срабатывает весьма хорошо, если вводить его напрямую в shell, из которой вы и запустите python. Однако как удалось выяснить полуэкспериментально, полутеоретически скрипты bash и иные программы работают с собственным экземпляром интерпритатора ком. строки, а поэтому изменения переменных среды, внесенные bash-скриптом хука, никак не влияют на переменные среды интерпритатора Python. Непосредственная модификация из Python-скрипта не работает и это объясняется тем что переменную LD_LIBRARY_PATH интерпритатор считывает(загрузчик,запускающий интерпритатор точнее ) считывает эту переменную один раз, а дальше уже она не влияет на ситуацию.
Доступа ко всяким .bashrc я на OpenShift не нашел. Запуск питона и его приложения привязан к git push и автоматичен, не хотелось бы от этого отказываться
  • Вопрос задан
  • 3622 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Запускайте свой питон прямо из скрипта, который выполнил команду export
Ответ написан
А прописать этот путь к библиотеками в /etc/ld.so.conf нельзя?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы