使用 Python 设置 cx_Oracle 环境变量
Setup cx_Oracle Environmental Variables with Python
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 导入 cx_Oracle 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)
这个问题很可能已经在这个网站上得到了回答:
How to change environment variables in python?
我引用已接受的答案:
You can set them that way, however $LD_LIBRARY_PATH is read by the loader which has already run before that therefore you must set that one externally beforehand.
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 导入 cx_Oracle 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)
这个问题很可能已经在这个网站上得到了回答: How to change environment variables in python? 我引用已接受的答案:
You can set them that way, however $LD_LIBRARY_PATH is read by the loader which has already run before that therefore you must set that one externally beforehand.