Подключите python к оракулу

Я установил клиент Oracle и клиент-разработчик Oracle и установил переменную среды ORACLE_HOME. Тем не менее, когда я пытаюсь установить tux_oracle (python setup.py build), я получаю следующее: фатальная ошибка: oci.h: нет такого файла или каталога


person kostas    schedule 25.11.2011    source источник


Ответы (3)


Что ж, ответ - установить cx_Oracle, а не tx_Oracle. В Ubuntu это можно сделать следующим образом:

  1. На вашем компьютере должен быть установлен клиент oracle. Если не загрузить с Oracle http://www.oracle.com/technetwork/topics/linuxsoft-082809.html.
  2. Установите alien на свой компьютер, чтобы иметь возможность конвертировать rpm в deb:
sudo apt-get -i alien
  1. Преобразуйте обороты в минуту в deb:
sudo alien -d oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
  1. Install
    sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.2.0-2_i386.deb
  2. Установите переменную среды ORACLE_HOME в /etc/profile.d, создав файл oracle.sh, который должен содержать:
export ORACLE_HOME=/usr/lib/oracle/11.2/client
source oracle.sh
  1. Обновите LD_LIBRARY_PATH:
sudo vi /etc/ld.so.conf.d/oracle.conf which must contain:  
"$ORACLE_HOME/lib"
sudo ldconfig
  1. Загрузите и установите cx_Oracle (в зависимости от используемой вами версии oracle и python) с http://cx-oracle.sourceforge.net/ Снова конвертируем rpm в deb с помощью alien и устанавливаем:
sudo alien -d cx_Oracle-5.1-11g-py32-1.i386.rpm
sudo dpkg -i cx-oracle_5.1-2_i386.deb
  1. cx_Oracle устанавливается в /usr/lib/python2.7/dist-packages/. Вы должны сделать: sudo mv site-packages / cx_Oracle * dist-packages / sudo rmdir site-packages / sudo ln -s dist-packages site-packages

Теперь у вас не должно возникнуть проблем с подключением к Oracle. Из типа python:

import cx_Oracle

Для подключения к базе данных укажите строку подключения в tsnames.ora или напрямую:

connection_string = 'username/password@(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA= (SID=MY_SID)))'
person kostas    schedule 02.12.2011
comment
устанавливает cx_oracle аналогично на x64 python / os? - person Amir Ali Akbari; 20.11.2013

Я использую cx_oracle для подключения к моей базе данных Oracle. Вы попробовали?

person gecco    schedule 25.11.2011

Этот файл заголовка можно найти в пакете разработки. По какой-то причине он не входит в стандартный дистрибутив. Посмотри на

http://my.opera.com/onyxluo/blog/cannot-find-oci-h-in-oracle9-2-client

Вот содержание страницы для вашего удобства. Я получил его из кеша Google, так как страница была недоступна, когда я туда попал.

Причина этой проблемы в том, что пакет OCI (Oracle Call Interface) не установлен в клиенте Oracle9.2. Путь по умолчанию для «oci.h» - $ ORACLE_HOME / rdbms / demo. Эта проблема не существует в Oracle Database 9.2.0.1. Но для клиента Oracle 9.2.0.1 пакет OCI не включается в клиент, даже если вы выбираете полный пакет установки клиента.

Решение:

  1. сначала установите клиент Oracle 9.2.0.1.
  2. В OUI (универсальный установщик Oracle) используйте тот же дом Oracle с клиентом Oracle 9.2.0.1, а затем выберите установку Oracle Database.
  3. Выберите Customized при установке базы данных.
  4. Снимите флажки Enterprise Manager и Oracle Database и другие, кроме OCI и OCCI.

После установки OCI $ ORACLE_HOME / rdbms / demo будет содержать oci.h и другие файлы * .h.

person thoaionline    schedule 25.11.2011