web-dev-qa-db-fra.com

cx_Oracle: distutils.errors.DistutilsSetupError: impossible de localiser les fichiers d'inclusion Oracle

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?

  1. Exécutez pip install cx_Oracle. Vous avez une erreur:

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
20
khris

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

14
fn.
  1. Installer Oracle_client_basic

    Oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    
  2. Utilisation de pip install

    python -m pip install cx_Oracle
    
  3. Ajout de ldconfig

    1. Recherchez 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

      Ajoutez-y cet emplacement:

      /u01/app/Oracle/product/11.2.0/client_1/lib
      
    3. ldconfig
  4. import cx_Oracle
1
james.peng

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

1
etlds

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.

0
ARK