CX Oracle: distutils.erreur.DistutilsSetupError: impossible de localiser les fichiers include D'Oracle

j'ai besoin d'installer cx_Oracle pour Python 2.5 sur Linux (Linux 2.6.18-371.1.2.el5 i686). J'ai installé Oracle client 10.2.0.4.

j'ai essayé de suivre: 1. Télécharger cx_Oracle tar.gzhttp://sourceforge.net/projects/cx-oracle/files/. Je ne sais pas lesquelles des versions listées sont appropriées pour python 2.5 et Oracle client 10.2.0.4, alors essayez cx_Oracle-5.1.tar.gz. Déballé le goudron, allez dans le dossier non empaqueté et lancez python setup.py installer. Je suis d'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

.bash_profile j'ai placé oracle chemin d'accès:

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 que j'ai besoin d'une autre version de cx_Oracle tar?

  1. exécuter pip install cx_Oracle. A reçu l'erreur:

Download / unpacking 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 dans la 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
20
demandé sur khris 2014-07-03 13:26:40

4 réponses

quand vous courez setup.py il vérifiera l'un de ces dossiers sur votre ORACLE_HOME.

possibleIncludeDirs = ["rdbms/demo", "rdbms/public", "network/public",
        "sdk/include"]

aussi le client instantané place parfois les fichiers include, tels que le 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 Client SDK

13
répondu fn. 2014-07-03 20:30:24

assurez-vous d'installer le sdk client instantané pour votre système D'exploitation.

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

1
répondu etlds 2014-10-23 18:32:10
  1. Installer oracle_client_basic

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    
  2. utiliser pip install

    python -m pip install cx_Oracle
    
  3. ajout de ldconfig

    1. trouver l'emplacement de votre client, par exemple:/u01/app/oracle/product/11.2.0/client_1/lib
    2. vi /etc/ld.so.conf.d/oracle.conf

      Ajouter cet emplacement:

      /u01/app/oracle/product/11.2.0/client_1/lib
      
    3. ldconfig
  4. import cx_oracle
1
répondu james.peng 2017-08-29 08:00:56

assurez-vous que vous avez un sdk client présent dans votre chemin.

J'ai aussi dû ajouter ceci à mon .bash_rc

export DYLD_LIBRARY_PATH=$ORACLE_HOME

En plus de cela, Python 2.7 ne vient pas avec Python.h qui est disponible par défaut en Python 3.4. Je suggère donc aussi d'installer le paquet python-devel

yum install python-devel

Qui devrait résoudre le problème.

0
répondu ARK 2014-11-19 13:00:50