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

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

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

Любые предложения?

Ответ 1

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

см. easy_install cx_Oracle (пакет python) в Windows

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

Ответ 2

Установите клиент 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

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

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

Ответ 4

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

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

Ответ 5

Я следил за этой ссылкой, и это сработало для меня.

Загрузите 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

Ответ 6

Совет для пользователей Ubuntu

После настройки переменных среды .bashrc, как это объяснялось в других ответах, не забудьте перезагрузить окно терминала, набрав $SHELL.