Wednesday, October 18, 2006

Compilando e instalando o cx_Oracle com python2.4 no Debian

O cx_Oracle é uma interface de conexão ao Oracle para Python e segue todas as especificações da API de banco de dados do Python, com algumas exceções. E como as versões para download no site são em rpm ou tar.gz, vamos baixar o tar.gz e compilar tudo do zero. Pelo menos vamos ter certeza de que está tudo compilado certinho.

Primeiramente fazer o download do cx_Oracle.

Instalar o pacote python2.4-dev que é utilizado pelo cx_Oracle na hora da compilação

#aptitude install python2.4-dev

Agora descompacte e entre no diretório:
#tar -zxvf cx_Oracle-4.2.tar.gz
#cd cx_Oracle-4.2

Agora, vamos compilar os fontes, tenha certeza de ter os pacotes para compilação instalados, gcc, binutils, make...

Bom agora para compilar vamos fazer:
#python setup.py build

Com os pacotes corretos e, claro, seu ORACLE_HOME setado e o seu LD_LIBRARY_PATH=$ORACLE_HOME/lib , configurados...se você quiser ter certeza de que está tudo certinho, digite:

#ldconfig

Bom, deve compilar direitinho e com alguns warnings, mas se compilar, então está tudo bem.
Agora vamos instalar

#python setup.py install

Com isso ele vai jogar o binário do cx_Oracle em /usr/lib/python2.4/site-packages/ e você vai estar pronto para utilizá-lo.

Caso você queira se certificar de que o binário do cx_Oracle está em perfeitas condições, vá em /usr/lib/python2.4/site-packages/ e digite:

#ldd cx_Oracle.so
linux-gate.so.1 => (0xffffe000)
libclntsh.so.10.1 => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server//lib/libclntsh.so.10.1 (0xa714f000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xa712a000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xa6ff9000)
libnnz10.so => /usr/lib/oracle/xe/app/oracle/product/10.2.0/server//lib/libnnz10.so (0xa6df4000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xa6df0000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xa6dca000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xa6db4000)
/lib/ld-linux.so.2 (0x75555000)

Tem que estar tudo direitinho assim, caso tenha algum "Not found", é bom verificar se o seu ORACLE_HOME ou o LD_LIBRARY_PATH está configurado direitinho.

Agora para testar, é só ver se o python importa o módulo:

#python
Python 2.4.4c0 (#2, Jul 30 2006, 15:43:58)
[GCC 4.1.2 20060715 (prerelease) (Debian 4.1.1-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> cx_Oracle

>>>


Bom, é isso aew, está funcionando.

Caso tenha algum problema, uma boa fonte de pesquisa é:

Os arquivos da mail list do cx_Oracle: aqui
E o google.

Flw, abraço


0 Comments:

Post a Comment

<< Home