it-swarm.com.ru

"ошибка: не удается найти установку программного обеспечения Oracle" при попытке установить cx_Oracle

Здесь новичок пытается использовать python для некоторого анализа базы данных. Я продолжаю получать сообщение об ошибке: "Error: невозможно найти установку программного обеспечения Oracle" при установке CX_Oracle (через easy_install).

Проблема в том, что у меня нет Oracle на моей локальной машине, я пытаюсь использовать python для подключения к основному серверу Oracle. Я установил другую программу для этого (visualdb), и у меня был файл .jar, который я использовал в качестве драйвера, но я не уверен, как его использовать в этом случае.

Какие-либо предложения?

12
user1735075

Не используйте easy_install или pip, они не очень хорошо работают для установки cx_Oracle, поскольку существует ряд зависимостей среды, которые не устанавливаются автоматически сценариями установки. Вам нужно получить клиентский драйвер Oracle, самый быстрый из которых найти - это мгновенный клиент. Затем укажите ваши Oracle_HOME и PATH в месте установки драйверов и установите сам cx_Oracle. Тебе должно быть хорошо пойти после этого.

смотрите: easy_install cx_Oracle (пакет python) для Windows

Вопрос касается окон, но ответ включает информацию о * nix.

9
Silas Ray

Установите клиент Oracle

  1. Скачать клиент Oracle: http://www.Oracle.com/technetwork/topics/linuxx86-64soft-092277.html

    Пример: Oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

  2. Установите Alien:

    Sudo apt-get install alien
    
  3. установите RPM в системе Ubuntu:

    Sudo alien -i Oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm`
    
  4. Добавить в переменные среды

    vim ~/.bashrc
    export Oracle_HOME=/usr/lib/Oracle/12.2/client64/lib/
    export LD_RUN_PATH=/usr/lib/Oracle/12.2/client64/lib:$LD_RUN_PATH
    source ~/.bashrc
    Sudo ln -s /usr/lib/Oracle/12.2/client64 $Oracle_HOME/include`
    

В заключение

pip install cx-Oracle
3
thiagofalcao

Я получил это сообщение, когда пытался установить 32-битную версию с установленным 64-битным клиентом Oracle.

Что сработало для меня: переустановил python с 64-битным (имел почему-то 32), установил cx_Oracle (64-битная версия) с установщиком Windows, и он работал отлично.

2
Carni

Я установил cx_Oracle, но мне также пришлось установить клиент Oracle, чтобы использовать его (модуль cx_Oracle - это просто обычный и Pythonic способ взаимодействия с клиентом Oracle в Python).

Таким образом, вы должны установить переменную Oracle_HOME в своей папке клиента Oracle (в Unix: через Shell, например; в Windows: создайте новую переменную, если ее нет в переменных Environment на панели конфигурации). Ваша папка $Oracle_HOME/network/admin (%Oracle_HOME%\network\admin в Windows) - это место, где вы бы поместили свой файл tnsnames.ora.

2
Emmanuel

Я пошел по этой ссылке инструкции, и у меня это сработало.

Загрузите Oracle Basic/SDK с: 

Oracle Instant Client Basic

Oracle Instant Client SDK

mkdir /Users/<username_here>/Oracle
mv /Users/<username_here>/Downloads/instantclient-*         
/Users/<username_here>/Oracle
cd /Users/<username_here>/Oracle
unzip instantclient-basic-macos.x64-11.2.0.3.0.Zip
unzip instantclient-sdk-macos.x64-11.2.0.3.0.Zip
cd instantclient_11_2/sdk
unzip ottclasses.Zip
cd ..
cp -R ./sdk/* .
cp -R ./sdk/include/* .
ln -s libclntsh.dylib.11.1 libclntsh.dylib
ln -s libocci.dylib.11.1 libocci.dylib
vim ~/.bash_profile (and below to bash_profile)

  export Oracle_HOME=/Users/<username_here>/Oracle/instantclient_11_2
  export DYLD_LIBRARY_PATH=$Oracle_HOME
  export LD_LIBRARY_PATH=$Oracle_HOME

pip install cx_Oracle

После этого, если вы получите ошибку вроде:

1): библиотека не загружена:
/ade/b/3071542110/Oracle/rdbms/lib/libclntsh.dylib.11.1

ты должен :

Sudo mkdir -p /ade/b/3071542110/Oracle/rdbms/lib/
cd /ade/b/3071542110/Oracle/rdbms/lib/
Sudo ln -s /opt/Oracle/instantclient/libclntsh.dylib.11.1 libclntsh.dylib.11.1
1
Arun Gopalpuri