web-dev-qa-db-fra.com

cx_Oracle dans Ubuntu: distutils.errors.DistutilsSetupError: impossible de localiser une installation logicielle Oracle

j'essaie d'installer python dépendances pour Django projet sdu.edu.kz. Ce projet utilise cx-Oracle. Quand j'essaye:

./install_python_dependencies.sh install

Il installe avec succès tous les modules sauf un. Le module de cx-Oracle. Cependant, j'ai installé le programme cx-Oracle sur mon ordinateur.

Il imprime l'erreur:

Collecting cx-Oracle==5.2 (from -r requirements/base.txt (line 82))
  Using cached cx_Oracle-5.2.tar.gz
   Complete output from command python setup.py Egg_info:
   Traceback (most recent call last):
     File "<string>", line 1, in <module>
     File "/tmp/pip-build-RP7c9i/cx-Oracle/setup.py", line 170, in <module>
       raise DistutilsSetupError("cannot locate an Oracle software " \
   distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation

   ----------------------------------------
Command "python setup.py Egg_info" failed with error code 1 in /tmp/pip build-RP7c9i/cx-Oracle/

Comment localiser une installation logicielle Oracle? Des idées? S'il vous plaît, aidez

4
zshanabek

Pour Oracle 12.x, cx_Oracle n'est pas encore disponible. Nous devons donc télécharger le client instantané avec la version 11.x.

Allez sur http://www.Oracle.com/technetwork/topics/linuxx86-64soft-09227777.html et acceptez le contrat de licence.

Puis téléchargez les fichiers Zip avec les noms ci-dessous

  • instantclient-sdk-linux.x64-11.2.0.4.0.Zip
  • instantclient-basic-linux.x64-11.2.0.4.0.Zip

Et décompressez-les avec la commande unzip

unzip instantclient-sdk-linux.x64-11.2.0.4.0.Zip
unzip instantclient-basic-linux.x64-11.2.0.4.0.Zip

Les deux seront extraits dans un répertoire commun nommé "instantclient_11_2". Ajoutez ensuite ceci à PATH avec les commandes ci-dessous.

export Oracle_HOME=/path-to_this/instantclient_11_2
cd $Oracle_HOME
ln -s libclntsh.so.11.1   libclntsh.so

Ouvrez/etc/profile ou .bashrc et les entrées suivantes.

export Oracle_HOME=/location/of/your/files/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Oracle_HOME

puis faites source ~/.bashrc ou source /etc/profile

Et installez ces paquets

Sudo apt-get install build-essential unzip python-dev libaio-dev

après cela, utilisez pip ou pip3 selon votre version Python, puis installez-le.

pip3 install cx_Oracle

et essayez de charger le module cx_Oracle dans un interpréteur Python.

J'espère que cela t'aides.

Le crédit va ici: https://Gist.github.com/kimus/1001291

Note: J'ai essayé ceci sur mon installation Ubuntu 16.04, cela devrait fonctionner pour vous.

3
rɑːdʒɑ