6
votes

Comment installer CX_oracle sur El Capitan

Si je comprends bien, il y avait des changements liés à SIP qui facilite l'installation de cela difficile.

Ces pages ont l'arrière-plan et les conseils à installer. http://sourceforge.net/p/cx-oracle/mailman/message/ 34534872 / , http://stefanoapostosticolo.com/2015/10/08/ installe_cx_oracle_with_sip_enabled.html

Mettre tout cela ensemble, voici mon meilleur coup à l'installer à mon virtualenv mais hélas, toujours pas bon.

L'erreur que je reçois est: xxx

Voici toutes mes étapes d'installation: xxx


4 commentaires

Salut greg, mais avez-vous dirigé "cxoraclesip.sh"? Parce que vous êtes confronté à une question de sécurité OSX plutôt qu'à un problème de client Oracle. Salutations


Merci. Je crois que le correctif_oralib.rb aussi le correctif de sécurité. Une idée que je travaille est que PIP n'installez pas la dernière version.


Il ne devrait y avoir aucun problème de SIP si vous utilisez les bibliothèques 12.1 du client instantané droit. Il suffit de définir la variable d'environnement FORCE_RPATH = 1 avant d'installer CX_oracle.


En outre, ld_library_path est une chose linux, et dy_library_path n'est pas utilisée à cause du problème de SIP. Donc, pas besoin de définir ces variables.


5 Réponses :


0
votes

Je pense que je l'ai réparé. Fondamentalement, tout dans mes marches postées ci-dessus était correct.

mais j'ai fini par utiliser ceci pour l'installation du PIP pour vous assurer qu'il retire une nouvelle copie et reconstruit (et peut-être une version ultérieure ??) P>

$ pip install --no-cache-dir --allow-external --allow-unverified cx_oracle


0 commentaires

2
votes

Merci pour les instructions Greg.

Je devais créer un lien symbolique pour mon installation CX_Oracle PIP pour fonctionner (à l'aide des arguments fournis ci-dessus). Vous voudrez peut-être les ajouter à vos instructions. P>

ln -s libocci.dylib.11.1 libocci.dylib


1 commentaires

FWIW, CX_ORACLE n'utilise pas C ++, vous n'avez donc pas besoin du lien symbolique de Libocci. Vous avez seulement besoin du lien liblntsh.



8
votes

J'ai essayé ce qui précède et j'ai eu l'erreur suivante en essayant d'installer CX_Oracle à l'aide de Oracle InstantClient 12.1 strong>:

# Set -rpath option before installing...this will use $ORACLE_HOME during compilation
export FORCE_RPATH=TRUE
pip install cx_Oracle
# And verify cx_Oracle was correctly installed
python -c "import cx_Oracle"
# If this line fails install cx_Oracle with:
#   pip install --no-cache-dir --allow-external --allow-unverified cx_oracle


5 commentaires

Il ne devrait pas y avoir de problèmes SIP si vous utilisez le client instantané 12.1 Bibliothèques et Exporter force_rpath = 1 avant l'installation. Si vous consultez CX_Oracle's Setup.py, vous pouvez voir cette variable causes -rpath à ajouter à la ligne de liaison.


Vérifié qu'il n'y ait pas de problèmes SIP avec InstantClient 12.1, tant que vous exécutez Exporter force_rpath = 1 avant d'exécuter PIP Installez cx_oracle. La réponse ci-dessus fait essentiellement ce que le PIP ferait ... Le poste lié ci-dessus a également été mis à jour.


Un couple simplifications / commentaires sur le post lié: (i) cx_oracle utilise OCI PAS OCII, donc techniquement, il n'y a pas besoin de la Libocci SymboCic Link (II) Oracle_Home n'est utilisé que par setup.py lors de l'installation, de sorte que vous n'en avez pas besoin. dans .CASHRC. En général Oracle_Home ne doit pas être défini lors de l'utilisation d'un client instantané, mais CX_Oracle surcharge son utilisation et en a besoin pour l'installation (III) en raison de l'utilisation de RPATH, vous n'avez pas besoin de définir DYLD_LIBRARY_PATH. J'espère que ces aides faciliteront cela.


Le Post lié a été mis à jour avec les 3 suggestions ci-dessus. Le crédit a également été donné à @christophalerjones au bas de l'article.


J'ai commencé à obtenir des erreurs après la mise à niveau vers Sierra. En définissant forcer_rpath = 1 , désinstallation et réinstallation avec pip install --no-cache-dir =allow-externe-upo-upo-soul / code> (note que j'ai dû Utilisez toutes ces options. Juste faire l'installation normale ne l'a pas fait. Maintenant, travaillez. Merci!



0
votes

Pour installer CX_Oracle sur OS X, téléchargez les packages Basic & SDK Instant 64 bits pour OS X de http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html . Avec cette version du client instantané, vous pouvez vous connecter aux bases de données 10G, 11G et 12C. Cette version est liée de manière à éviter le problème SIP Apple récemment introduit (qui a affecté le client instantané 11.2).

puis exécutez quelque chose comme: p>

unzip instantclient-basic-macos.x64-12.1.0.2.0.zip
unzip instantclient-sdk-macos.x64-12.1.0.2.0.zip
cd instantclient_12_1
ln -s libclntsh.dylib.12.1 libclntsh.dylib
cd ..
export ORACLE_HOME=`pwd`/instantclient_12_1
export FORCE_RPATH=1
pip install cx_Oracle


0 commentaires

0
votes

Avis également: Si votre python fonctionne comme 32 bits et installé cx_oracle comme 64 bits, vous rencontrerez également ce problème. Pour éviter ce problème, exécutez toujours votre commande en tant que super utilisateur 'Su' et d'obtenir clairement 'SU' Python est 32 bits ou 64 bits. Vérifiez votre bit Python Comment puis-je déterminer si mon shell Python exécute en mode 32 bits ou 64 bits sur OS X?

force en utilisant 64 bits:

arc -x86_64 / usr / bin / python27

force à l'aide de 32 bits:

par défaut d'écrire com.apple.versioner.python Préfère-32 bits -Bool Oui


0 commentaires