使用 Python 设置 cx_Oracle 环境变量

Posted

技术标签:

【中文标题】使用 Python 设置 cx_Oracle 环境变量【英文标题】:Setup cx_Oracle Environmental Variables with Python 【发布时间】:2015-05-15 01:00:43 【问题描述】:

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)

【问题讨论】:

我在这里找到了类似的讨论:***.com/questions/3348894/… 【参考方案1】:

这个问题很可能已经在这个网站上得到了回答: How to change environment variables in python? 我引用了公认的答案:

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

【讨论】:

以上是关于使用 Python 设置 cx_Oracle 环境变量的主要内容,如果未能解决你的问题,请参考以下文章

python通过cx_oracle操作数据库过程简单记录

为 python 安装 cx_oracle

Python安装cx_Oracle模块遇到的问题(32bit)

windows下python3 使用cx_Oracle,xlrd插件进行excel数据清洗录入

Linux安装cx_Oracles

Python3安装cx_Oracle连接oracle数据库实操总结