cx_Oracle для Python требует установки определенных переменных среды для импорта и правильной работы. Вместо того, чтобы пытаться обернуть свое приложение в сценарий bash, что я делал в прошлом, я пытаюсь настроить переменные, используя только 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.
Изменить. Ниже приведено то, что я обычно добавляю в свои оболочки bash:
#!/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)