powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python + Oracle + cx_Oracle - Как соединить?
4 сообщений из 4, страница 1 из 1
Python + Oracle + cx_Oracle - Как соединить?
    #38443351
Bombat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Хочу с помощью питона получить доступ к БД. Решил воспользоваться cx_Oracle (модуль для Python).
Оракловый клиент установлен. Питон установлен. Скачал и установил модуль для клиента 11g под Win32.

>>>import cx_Oracle
выдает:
"ImportError: DLL load failed: Не найдена указанная процедура."
Насколько я понял, модулю нужна библиотека oraocci11.dll. Она есть, путь к ней в переменной PATH прописан.
Чего еще не хватает?
...
Рейтинг: 0 / 0
Python + Oracle + cx_Oracle - Как соединить?
    #38444808
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю что подсказать, у меня проблем не возникло вообще.

клиент оракловый у меня только не Instant стоит а Runtime. С Instant не пробовал
сцыль на полный клиент
...
Рейтинг: 0 / 0
Python + Oracle + cx_Oracle - Как соединить?
    #38445294
demmsnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bombat,

О это гениальное изобретение Oracle. У них есть переменная ORACLE_HOME там должны лежать dll файлы оракловского клиента (я могу дать список тех что у меня, но их очень много).
В итоге я сделал вот такую вот обертку:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
def getOra(url):
    curr = os.getcwd()
    if 'ORACLE_HOME' not in os.environ:
       os.environ['ORACLE_HOME'] = 'c:\\oracle\\'
    os.chdir(os.environ['ORACLE_HOME'])
    import cx_Oracle
    con = cx_Oracle.connect(url)
    os.chdir(curr)
    return con



Ну ясно что надо импортировать os и еще в путях должен лежать оракловский фал со схемами tnsnames.ora
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Python + Oracle + cx_Oracle - Как соединить?
    #38981149
Doxly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Потратив день нашел причину и соответственно решение.

Вариант предложенный demmsnt кстати работает, но очень неудобен в использовании.

Причина оказалась в том, что на машине присутствовало несколько клиентов Оракла.
Каждый из клиентов честно прописывал свои пути в переменную окружения path.
Поскольку Винда - поиск библиотек идет только по нему (ld_library_path не работает).
При поиске библиотеки oci.dll, от которой зависит наш файл модуля cx_oracle.pyd находится первая библиотека при переборе путей из path. У меня это оказалась библиотека от более старого клиента (Oracle 9i), причем в ней действительно не хватало нескольких функций, которые есть в нужной мне библиотеке от Oracle 11.
Проблема решилась перетасовкой путей в переменной окружения Path.

Всем удачи!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python + Oracle + cx_Oracle - Как соединить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]