Toad работает правильно, но не cx_oracle

#python #oracle #cx-oracle

#python #Oracle #cx-oracle

Вопрос:

Я установил клиент Oracle 12.2.0 на свой рабочий стол и свой ноутбук. Когда я использую TOAD, в обоих из них все работает нормально. Однако при использовании cx_Oracle в Jupyter Notebook на моем рабочем столе я получаю следующую ошибку: «DPI-1047: не удается найти 64-разрядную клиентскую библиотеку Oracle». Интересно, что я вообще не получаю эту ошибку на своем ноутбуке. На обоих из них мой python 64-разрядный, а клиент oracle 32-разрядный.

Мне интересно, почему я получаю эту ошибку только в одном из них. Я почти использовал все решения в разных сообщениях, но ни одно из них не сработало.

Есть идеи?

Ответ №1:

Если Python 64-разрядный, он будет работать только с 64-разрядным клиентом Oracle. Вы не предоставили полезную информацию, такую как операционная система и версии, поэтому я могу дать только общую информацию:

  • убедитесь, что 64-разрядный клиент Oracle находится в вашем пути поиска библиотеки (PATH в Windows, LD_LIBRARY_PATH или через ldconfig в Linux) перед запуском Juptyer

  • или в Windows и macOS используйте init_oracle_client() функцию cx_Oracle 8.

Ответ №2:

Вот решение, которое я нашел для своей проблемы:

  1. Загрузите 64-разрядную версию oracle instantClient с: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
  2. Скопируйте DLL-файлы из каталога instantclient в каталог python, как показано ниже

введите описание изображения здесь

введите описание изображения здесь

Вот и все!