Как установить cx_Oracle для Python на RHEL? - PullRequest
0 голосов
/ 22 июня 2011

Я использую Active Python, так как не хочу зацикливаться на старой версии Python.Я установил мгновенный клиент и добавил экспорт в свой профиль bash, но получаю загадочную ошибку:

# apy setup.py install --no-compile --root=/tmp/tmpz0JuWASA/cx_Oracle-5.1/_pypminstroot
running install
running build
running build_ext
building 'cx_Oracle' extension
gcc -pthread -fno-strict-aliasing -fPIC -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/oracle/11.2/sdk/include -I/opt/ActivePython-2.7/include/python2.7 -c cx_Oracle.c -o build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -DBUILD_VERSION=5.0.4
In file included from /opt/ActivePython-2.7/include/python2.7/Python.h:58,
                 from cx_Oracle.c:6:
/opt/ActivePython-2.7/include/python2.7/pyport.h:849:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
In file included from /usr/lib/oracle/11.2/sdk/include/oci.h:3029,
                 from cx_Oracle.c:10:
/usr/lib/oracle/11.2/sdk/include/ociap.h:10788: warning: function declaration isn’t a prototype
/usr/lib/oracle/11.2/sdk/include/ociap.h:10794: warning: function declaration isn’t a prototype
error: command 'gcc' failed with exit status 1

Ответы [ 3 ]

3 голосов
/ 22 августа 2013

Я взял все это из этого блога здесь , если вам нужно больше деталей.

Я сделал это, и это сработало отлично. Вот краткое резюме. Сначала найдите клиентский материал для вашей версии oracle (ссылка в блоге)

Затем загрузите в папку / tmp / и запустите установку

rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm

Теперь это была часть, с которой я боролся, убедитесь, что ВСЕ ваши переменные среды верны. Также не просто скопируйте их, идите и подтвердите, где был установлен ваш оракул.

echo export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib/ >> ~/.bashrc
echo export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client64 >> ~/.bashrc
echo export PATH=$ORACLE_HOME/bin:$PATH >> ~/.bashrc

Теперь вы можете перейти на сайт ox_Oracle, обязательно скачайте версию, соответствующую вашей версии python (если вы не уверены, что запускаете python -V) и версию драйвера oracle.

Загрузите в папку TMP, установите и протестируйте с помощью

python -c "import cx_Oracle"

Если это не сработает, проверьте этот блог, может быть, я что-то пропустил. Это работало для меня на новой установке. Слава Богу.

Извините ... недостаточно очков репутации, чтобы дать больше живых ссылок ... поэтому вам нужно скопировать и вставить или перейти в блог.

0 голосов
/ 19 ноября 2014

Убедитесь, что на вашем пути есть клиент SDK. Oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm, который я пробовал, не поставляется с SDK. Поэтому мне пришлось скачать zip-версию для него.

Добавить это в .bash_rc

export DYLD_LIBRARY_PATH=$ORACLE_HOME

В дополнение к этому, Python 2.7 не поставляется с Python.h, который доступен по умолчанию в Python 3.4. Поэтому я бы также предложил установить пакет python-devel

yum install python-devel

Это должно решить проблему.

0 голосов
/ 22 июня 2011

Во-первых, активное распределение состояний - это еще один дистрибутив, он всегда следует за выпуском с python.org. Таким образом, вы также получаете последнюю версию от python.org. Я думаю, вы имели в виду установленный на системе python, который может быть немного старше.

Во-вторых, в вашей установке Redhat проверьте, установлены ли у вас инструменты разработки и заголовки, такие как gcc, glibc и т. Д. И здесь - это некоторые инструкции по сборке, которые приведены на странице cx_Oracle убедитесь, что вы следовали за ними.

...