J'ai besoin d'installer cx_Oracle pour Python 2.5 sous Linux (Linux 2.6.18-371.1.2.el5 i686). J'ai installé le client Oracle 10.2.0.4.
J'ai essayé ce qui suit: 1. Téléchargez cx_Oracle tar.gz
de http://sourceforge.net/projects/cx-Oracle/files/
. Je ne sais pas laquelle des versions répertoriées convient à python 2.5 et client Oracle 10.2.0.4, alors essayez cx_Oracle-5.1.tar.gz. Tar non compressé, allez dans le dossier décompressé et exécutez = python setup.py install. J'ai une erreur:
Traceback (most recent call last):
File "setup.py", line 187, in <module>
raise DistutilsSetupError("cannot locate Oracle include files")
distutils.errors.DistutilsSetupError: cannot locate Oracle include files
Dans .bash_profile, j'ai défini le chemin Oracle:
export Oracle_HOME=/usr/Oracle/10.2.0.4/client
export PATH=$Oracle_HOME/bin
export LD_LIBRARY_PATH=$Oracle_HOME/lib
Comment corriger une telle erreur, peut-être ai-je besoin d'une autre version de cx_Oracle tar?
Téléchargement/décompression de cx-Oracle
Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement cx-Oracle
No distributions at all found for cx-Oracle
Quelqu'un pourrait-il me conseiller la bonne solution?
Mise à jour Après suggestion en réponse, j'ai eu l'erreur suivante:
...
cx_Oracle.c:496: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast
cx_Oracle.c:497: error: âOCI_UCBTYPE_EXITâ undeclared (first use in this function)
cx_Oracle.c:497: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast
cx_Oracle.c:498: error: âOCI_UCBTYPE_REPLACEâ undeclared (first use in this function)
cx_Oracle.c:498: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast
error: command 'gcc' failed with exit status 1
Lorsque vous exécutez setup.py, il recherchera l'un de ces dossiers sur votre Oracle_HOME.
possibleIncludeDirs = ["rdbms/demo", "rdbms/public", "network/public",
"sdk/include"]
De plus, le client instantané place parfois les fichiers include, tels que oci.h, dans/usr/include/Oracle // client, s'il n'y a pas de répertoire 'include' sous Oracle_HOME, créez un lien symbolique vers celui-ci.
Sudo ln -s /usr/include/Oracle/11.2/client $Oracle_HOME/include
On dirait que vous manquez le SDK client
Installer Oracle_client_basic
Oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
Utilisation de pip install
python -m pip install cx_Oracle
Ajout de ldconfig
/u01/app/Oracle/product/11.2.0/client_1/lib
vi /etc/ld.so.conf.d/Oracle.conf
Ajoutez-y cet emplacement:
/u01/app/Oracle/product/11.2.0/client_1/lib
ldconfig
import cx_Oracle
Assurez-vous d'installer le client instantané sdk pour votre système d'exploitation.
http://www.Oracle.com/technetwork/database/features/instant-client/index-097480.html
Assurez-vous d'avoir un SDK client présent sur votre chemin.
J'ai aussi dû ajouter ceci à mon .bash_rc
export DYLD_LIBRARY_PATH=$Oracle_HOME
En plus de cela, Python 2.7 n'est pas livré avec Python.h qui est disponible par défaut dans Python 3.4. Je suggère donc également d'installer python- paquet de développement
yum install python-devel
Cela devrait résoudre le problème.