Настройка местоположения загрузки зависимости - PullRequest
0 голосов
/ 15 октября 2018

Начну с того, что Я перебрал несколько тем по этому вопросу и не нашел решения для своей проблемы.

Из моего понимания, когда модуль cx_oracle хочет загрузитьона зависит от путей в системной среде PATH и загружает первую найденную зависимость (независимо от совместимости ее версии / операционной системы).

Я работаю в среде, в которой не могу гарантировать, чтоСистемная переменная PATH не будет заполнена каталогом со «старой» или несовместимой версией клиента oracle, но у меня есть новая системная переменная, которая гарантированно «указывает» на правильный каталог.

Есть ли какие-либокаким образом я мог заставить модуль cx_oracle загрузить библиотеку из этого места?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

cx_Oracle 7 имеет изменение для Windows (только), что он сначала попытается загрузить клиентские библиотеки Oracle из того же каталога, в который установлен модуль cx_Oracle.Если там нет клиента Oracle, тогда загрузка возвращается к пути поиска ОС (например, PATH).

Так что, пока вы в порядке, вручную добавляя Instant Client в каталоги Python, вы получитежелаемый результат.

Использование произвольного каталога вне PATH или каталога cx_Oracle изначально не поддерживается ODPI-C.

0 голосов
/ 15 октября 2018

Вы можете (и должны, когда это возможно) избегать проблем с версиями системного пакета, помещая в свои среды Python песочницу с помощью чего-то вроде virtualenv или pipenv .

Если это не таквариант для вас, вы можете попробовать манипулировать путем текущего сеанса.

import sys
print(sys.path)

Это не то, что я действительно рекомендую, но если вы не можете обойти эту ситуацию, это может быть последним средством.

...