Système: MacBook Pro M1 16 Go de RAM

Python 3.8.5

J'essaye d'installer le module cx_Oracle et cela ne fonctionne pas.

sudo easy_install cx_Oracle -> réussi

Client de base et SDK installé à partir d'Oracle, après avoir suivi le script d'installation dans le fichier readme, la copie depuis le "Stick" est terminée.

Maintenant, ces dossiers copiés traînent dans mon répertoire de téléchargements, je pense que je dois mettre les deux clients ([instanclient ...]) dans un répertoire spécifique, mais je ne sais pas où. alors...

Erreur lorsque j'essaye d'exécuter le programme python dans le terminal: Traceback (most recent call last): File "app.py", line 5, in <module> connection = cx_Oracle.connect("hr", "hr", "10.0.0.22/orclpdb") cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 1): image not found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

L'erreur dans pyCharm: No module named 'cx_Oracle'

De plus, cette solution n'a pas fonctionné pour moi, car je n'ai pas de dossier oracle dans / lib https://github.com/oracle/node-oracledb/issues/1244#issuecomment-624646368

Où dois-je placer les dossiers pour pouvoir utiliser le module 'cx_Oracle' dans pyCharm?

Merci d'avance

0
ben123 12 mars 2021 à 15:15

2 réponses

Meilleure réponse

[Correctif PyCharm ci-dessous]

J'ai résolu ce problème en utilisant le cx_Oracle.init_oracle_client() comme référencée dans la documentation. Bien que j'obtienne les résultats, cela ne fonctionne que dans la ligne de commande. Si j'essaie de l'utiliser dans pyCharm, il ne reconnaît toujours pas mon module cx_Oracle. (J'ouvrirai un nouveau ticket pour cette erreur)

Ceci est un exemple de code:

import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir="/Users/benreisinger/Documents/testclients/instantclient_19_8", config_dir=None, error_url=None, driver_name=None)
# Connect as user "hr" with password "welcome" to the "orclpdb1" service running on this computer.
connection = cx_Oracle.connect("hr", "hr", "10.0.0.22/orclpdb")

cursor = connection.cursor()
cursor.execute("""
        select e.first_name AS fname, e.last_name AS lname, e.department_id, d.department_name
            from employees e 
            inner join departments d 
                on (e.department_id = d.department_id)
        """)

for first_name, last_name, department_id, department_name in cursor:
    print("Values:", first_name, last_name, department_id, department_name)

Résultats uniquement dans le terminal!

CORRECTIF: PyCharm-> préférences-> Projet: [votre projet] -> Interpréteur Python-> ajouter le package cx-Oracle

-> Avec ce correctif, enfin, PyCharm a reconnu le module cx_Oracle :)

0
ben123 13 mars 2021 à 12:10

Suivez les instructions de la documentation qui se trouve ici: https: // cx- oracle.readthedocs.io/en/latest/user_guide/installation.html.

Tant que cx_Oracle est installé dans le Python utilisé par PyCharm, vous devriez pouvoir le voir.

0
Anthony Tuininga 12 mars 2021 à 16:47