Подключите питона к оракулу - PullRequest
6 голосов
/ 25 ноября 2011

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

Ответы [ 3 ]

6 голосов
/ 02 декабря 2011

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

  1. На вашем компьютере должен быть установлен клиент Oracle.Если не скачать с oracle http://www.oracle.com/technetwork/topics/linuxsoft-082809.html.
  2. Установите инопланетянин на свой компьютер, чтобы иметь возможность конвертировать об / мин в deb:
sudo apt-get -i alien
Преобразование об / мин в deb:
sudo alien -d oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
Установить
sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.2.0-2_i386.deb
Установить переменную среды ORACLE_HOME в /etc/profile.d, создав файл oracle.sh, который должен содержать:
export ORACLE_HOME=/usr/lib/oracle/11.2/client
source oracle.sh
Обновление LD_LIBRARY_PATH:
sudo vi /etc/ld.so.conf.d/oracle.conf which must contain:  
"$ORACLE_HOME/lib"
sudo ldconfig
Загрузите и установите 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
cx_Oracle устанавливается в /usr/lib/python2.7/dist-packages/.Вы должны сделать:,Из типа 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)))'
1 голос
/ 25 ноября 2011

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

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

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

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

Решение:

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

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

1 голос
/ 25 ноября 2011

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

...