使用Python设置cx_Oracle环境变量

时间:2015-03-12 18:02:59

标签: python python-3.x environment-variables cx-oracle

cx_Oracle for Python需要设置某些环境变量才能导入并正常工作。我试图仅使用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)

1 个答案:

答案 0 :(得分:3)

这个问题可能已在本网站上得到解答: How to change environment variables in python? 我引用了接受的答案:

  

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