Я установил клиент Oracle и клиент-разработчик Oracle и установил переменную среды ORACLE_HOME. Тем не менее, когда я пытаюсь установить tux_oracle (python setup.py build), я получаю следующее: фатальная ошибка: oci.h: нет такого файла или каталога
Подключите python к оракулу
Ответы (3)
Что ж, ответ - установить cx_Oracle, а не tx_Oracle. В Ubuntu это можно сделать следующим образом:
- На вашем компьютере должен быть установлен клиент oracle. Если не загрузить с Oracle http://www.oracle.com/technetwork/topics/linuxsoft-082809.html.
- Установите alien на свой компьютер, чтобы иметь возможность конвертировать rpm в deb:
sudo apt-get -i alien
- Преобразуйте обороты в минуту в deb:
sudo alien -d oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
- Install
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/. Вы должны сделать: 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)))'
Я использую cx_oracle для подключения к моей базе данных Oracle. Вы попробовали?
Этот файл заголовка можно найти в пакете разработки. По какой-то причине он не входит в стандартный дистрибутив. Посмотри на
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 не включается в клиент, даже если вы выбираете полный пакет установки клиента.
Решение:
- сначала установите клиент Oracle 9.2.0.1.
- В OUI (универсальный установщик Oracle) используйте тот же дом Oracle с клиентом Oracle 9.2.0.1, а затем выберите установку Oracle Database.
- Выберите Customized при установке базы данных.
- Снимите флажки Enterprise Manager и Oracle Database и другие, кроме OCI и OCCI.
После установки OCI $ ORACLE_HOME / rdbms / demo будет содержать oci.h и другие файлы * .h.