设置依赖项的加载位置

时间:2018-10-15 04:59:33

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

首先,我会说我已经解决了多个主题,但没有找到解决我问题的方法。

据我了解,当cx_oracle模块要加载其依赖项时,它将在PATH系统环境中的路径上触发,并将加载它找到的第一个依赖项(无论其版本/操作系统兼容性如何)。

我在一个无法正常工作的环境中工作,我无法保证PATH系统变量不会被目录填充为“旧”或不兼容的oracle客户端版本,但是我确实有一个新的系统变量,可以保证将其指向“ point” '到正确的目录。

有什么方法可以强制cx_oracle模块从该位置加载库?

2 个答案:

答案 0 :(得分:2)

您可以(并且应该在可能的情况下)通过使用virtualenvpipenv之类的Python环境沙盒来避免系统软件包版本问题。

如果这不是您的选择,则可以尝试操纵当前会话的路径。

import sys
print(sys.path)

这不是我真正推荐的东西,但是如果您不能解决这种情况,那可能是万不得已的可能性。

答案 1 :(得分:1)

cx_Oracle 7在Windows(仅)上有一个change,它将首先尝试从安装cx_Oracle模块的同一目录中加载Oracle客户端库。如果那里没有Oracle客户端,则加载将回落到OS搜索路径(例如PATH)。

因此,只要您可以手动将Instant Client添加到Python目录中,就可以得到所需的结果。

ODPI-C本身不支持在PATH外部使用任意目录或cx_Oracle目录。