Python читает путь Oracle - PullRequest
       25

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

0 голосов
/ 18 сентября 2008

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 18 сентября 2008

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

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

import os
os.environ['PATH'] += os.pathsep + "C:\\oracle32\\bin"
0 голосов
/ 27 сентября 2008

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

0 голосов
/ 24 сентября 2008

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

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

...