使用Python设置cx_Oracle环境变量

使用Python设置cx_Oracle环境变量,python,python-3.x,environment-variables,cx-oracle,Python,Python 3.x,Environment Variables,Cx Oracle,cx_Oracle for 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'

cx_Oracle for 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()
直接调用导出,但我不确定它们是否不起作用,或者我没有正确理解这些函数

设置这些变量的最佳方法是什么,这样我就可以只使用Python 3导入cx_Oracle

编辑,下面是我通常添加到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)

这个问题很可能已经在这个网站上得到了回答: 我引用的是公认的答案:

您可以这样设置它们,但是$LD_LIBRARY_PATH是由之前已经运行的加载程序读取的,因此您必须事先在外部设置该路径


我在这里发现了类似的讨论: