cx_Oracle для Python требует, чтобы определенные переменные среды были установлены на месте, чтобы импортировать и работать правильно. Вместо того, чтобы пытаться обернуть мое приложение в скрипт bash, который я делал в прошлом, я пытаюсь настроить переменные, используя только Python.Настройка cx_Oracle Экологические переменные с Python
Ниже приведено то, что у меня есть на месте.
# Check if OS environment variables are setup.
if 'ORACLE_HOME' not in os.environ.keys():
os.environ['ORACLE_HOME'] = '/usr/lib/oracle/12.1/client64'
if 'LD_LIBRARY_PATH' not in os.environ.keys():
os.environ['LD_LIBRARY_PATH'] = os.environ['ORACLE_HOME'] + '/lib'
if '/usr/lib/oracle' not in os.environ['PATH']:
os.environ['PATH'] = os.environ['ORACLE_HOME'] + '/bin:' + os.environ['PATH']
import cx_Oracle
К сожалению, я по-прежнему получаю исключение от cx_Oracle, что в основном означает, что переменные не настроены должным образом.
Я также попытался использовать subprocess.Popen()
и subprocess.call()
, чтобы напрямую обращаться к экспорту, но я не уверен, что они просто не работают или я неправильно понимаю эти функции.
Каков наилучший способ настройки этих переменных, так что я могу импортировать cx_Oracle используя только Python 3.
Edit, Ниже то, что я обычно добавить к моим Баш оберток:
#!/bin/sh
# Initialize Environmental Variables for cx_Oracle
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
(Python Script)
Я нашел аналогичную дискуссию здесь: http://stackoverflow.com/questions/3348894/deploying-cx-oracle-onto-various-versions-of-oracle-client – Riju