Python читает путь к Oracle

На своем рабочем столе я написал небольшое приложение Pylons, которое подключается к Oracle. Теперь я пытаюсь развернуть его на своем сервере, на котором работает Win2k3 x64. (Мой рабочий стол - 32-битная XP) Установка Oracle на сервере также 64-битная.

У меня возникали ошибки при загрузке библиотеки DLL OCI, поэтому я установил 32-битный клиент в C:\oracle32.

Если я добавлю это в переменную среды PATH, все будет отлично. Но я также хочу запустить приложение Pylons как службу (используя этот рецепт) и не хочу помещать эту 32-битную библиотеку в путь для всех других приложений.

Я пробовал использовать sys.path.append("C:\oracle32\bin"), но, похоже, это не сработало.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 425
3

Ответы 3

sys.path - это внутреннее представление PYTHONPATH в Python, мне кажется, что вы хотите изменить PATH.

Не уверен, что это сработает, но вы можете попробовать:

import os
os.environ['PATH'] += os.pathsep + "C:\oracle32\bin"

r'C: \ oracle32 \ bin 'поможет избежать некоторых головных болей.

William Keller 18.09.2008 23:38

Да, я думал, что PYTHONPATH специфичен для Python. Этот ответ сработал отлично. Мне просто нужно было убедиться, что линия добавлена ​​до инициализации модели.

Galuvian 19.09.2008 00:04

Вам необходимо добавить каталог c: \ Oracle32 \ bin в переменную PATH вашей среды перед запуском python.exe.
В Linux мне нужно настроить переменную LD_LIBRARY_PATH по тем же причинам, чтобы найти библиотеки Oracle перед вызовом python. Я использую сценарии оболочки оболочки, которые устанавливают переменную, а затем вызывают Python.
В вашем случае, возможно, вы можете вызвать при запуске службы сценарий .cmd или .vbs, который устанавливает переменную PATH, а затем вызывает python.exe с вашим сценарием .py.

Надеюсь, это поможет!

Если ваше приложение Python работает в 64-битном пространстве, вам потребуется доступ к 64-битной установке Oracle oci.dll, а не к 32-битной версии. Обычно перед запуском сценария необходимо обновить системный путь, включив в него соответствующий каталог bin Oracle Home. Решение также может отличаться в зависимости от того, какой компонент вы используете для доступа к Oracle из Python.

Другие вопросы по теме