Установка переменных среды в Linux с использованием Python для ORACLE?

Я использую библиотеку cx_oracle и должен указать следующее, используя linux

экспорт LD_LIBRARY_PATH = / opt / oracle / 12.1.0_64bit / product / 12.1.0 / client_2 / lib export ORACLE_HOME = / opt / oracle / 12.1.0_64bit / product / 12.1.0 / client_2

это заставляет мой код работать нормально

проблема в том, что это не сохраняется в каждом сеансе, поэтому я решил добавить его в свой скрипт вместо этого

os.environ["ORACLE_HOME"] = /opt/oracle/12.1.0_64bit/product/12.1.0/client_2 
os.environ["LD_LIBRARY_PATH"] = /opt/oracle/12.1.0_64bit/product/12.1.0/client_2 

но это не работает. Я добавил эту строку сразу после импорта, поэтому она запускалась первым, но не меняла переменные.

когда я повторяю эти две переменные после сценария, они все еще пусты.


person stack flow    schedule 14.11.2019    source источник
comment
Вы пробовали заключать значения в двойные кавычки?   -  person Adam vonNieda    schedule 14.11.2019


Ответы (1)


В Linux вам необходимо установить LD_LIBRARY_PATH до запуска процесса (например, Python).

В противном случае вы можете добавить переменные env в такие файлы, как ~ / .bashrc, или создать сценарий-оболочку, например p.sh:

#!/bin/sh

export LD_LIBRARY_PATH=/opt/oracle/12.1.0_64bit/product/12.1.0/client_2/lib 
export ORACLE_HOME=/opt/oracle/12.1.0_64bit/product/12.1.0/client_2
python $@

Вам нужен полноценный клиент? У вас установлено другое программное обеспечение Oracle? Если нет и нет, рассмотрите возможность использования Oracle Instant. Client и с использованием ldconfig, поэтому вам не нужно устанавливать переменные среды, см. Инструкции по установке на https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html#ic_x64_inst

person Christopher Jones    schedule 14.11.2019