In diesem Artikel werden hauptsächlich die häufigsten Probleme und Lösungen für die Installation des cx_Oracle-Moduls in Python vorgestellt und die häufigen Probleme, Lösungen und zugehörigen Vorsichtsmaßnahmen für die Installation des cx_Oracle-Moduls in Python auf der Windows-Plattform und auf der Linux-Plattform analysiert Bedarf kann darauf verweisen
Die Beispiele in diesem Artikel beschreiben häufige Probleme und Lösungen für die Installation des cx_Oracle-Moduls in Python. Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:
Bei der Installation oder Verwendung von cx_Oracle müssen Sie die Oracle-Linkbibliothek wie libclntsh.so.10.1 verwenden, andernfalls werden verschiedene Fehlermeldungen angezeigt .
Sie können diese Linkbibliothek erhalten, indem Sie Oracle Instant Client installieren, um die Installation von Hunderten Megabyte Oracle Client zu vermeiden.
Software-Download-Adresse:
cx_Oracles Homepage: cx-oracle.sourceforge.net/
Download der erforderlichen Oracle-Linkbibliotheken Adresse: www.oracle.com/technology/software/tech/oci/instantclient/index.html
Häufige Fehler und Lösungen:
1.win32-Binärinstallation
Nach der Installation von cx_Oracle-5.0-10g.win32-py2.6.msi unter Windows wird beim Importieren gemeldet, dass die DLL geladen wird. Das ist fehlgeschlagen Der Fehler lautet wie folgt:
IDLE 2.6.1
>>> import cx_Oracle Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> import cx_Oracle ImportError: DLL load failed: 找不到指定的程序。
Lösung:
Instantclient-basic-win32- von der Oracle-Site 10.2 herunterladen .0.4.zip, kopieren Sie nach der Dekomprimierung die Datei oci.dll nach Lib/site-packages im Python-Installationsverzeichnis, z. B. C:/Python26/Lib/site-packages
2. Binärinstallation unter Linux
Unter linux_x86_64 tritt bei der Installation von cx_Oracle-5.0.1-10g-py24-1.x86_64.rpm ein Fehler auf.
[root@BJ-UPDATE-01 ~]# rpm -ivh cx_Oracle-5.0.1-10g-py24-1.x86_64.rpm error: Failed dependencies: libclntsh.so.10.1()(64bit) is needed by cx_Oracle-5.0.1-1.x86_64
Lösung:
Siehe cx-oracle.sourceforge.net/BUILD.txt
Laden Sie Basic-10.2 von der Oracle-Website herunter . 0.4.0-linux-x86_64.zip in das Verzeichnis /opt kopieren und entpacken. Im Verzeichnis /opt/instantclient_10_2 wird libclntsh.so.10.1 angezeigt.
Umgebungsvariablen festlegen
vi /root/.bash_profile
Fügen Sie die folgenden zwei Zeilen hinzu:
export ORACLE_HOME=/opt/instantclient_10_2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
Führen Sie source /root/.bash_profile aus, damit die Änderungen wirksam werden
Erstellen Sie einen symbolischen Link zu diese Linkbibliothek
cd $ORACLE_HOME ln -s libclntsh.so.x.x libclntsh.so
cx_Oracle neu installieren
Achten Sie darauf, den Parameter --nodeps hinzuzufügen, da sonst der obige Fehler gemeldet wird
[root@BJ-UPDATE-01 ~]# rpm -ivh --nodeps cx_Oracle-5.0.1-10g-py24-1.x86_64.rpm #5.0.3版本不用加--nodeps参数
3. Quellcode-Installation unter Linux
Um den Quellcode unter linux_x86_64 zu installieren, führen Sie Python aus setup.py build beim Kompilieren. Die Fehlermeldung lautet wie folgt:
Connection.c:1169: Warnung: Anweisung funktioniert nicht
Connection.c:1171: Fehler: 'udt_Connection ' hat kein Mitglied namens 'environment'
Connection.c:1172: Warnung: Konvertierung zwischen inkompatiblen Zeigertypen beim Übergeben von Argument 1 (gehört zu 'Environment_CheckForError')
Connection.c:1172: Warnung: Konvertierung zwischen inkompatiblen Zeigern Typen beim Übergeben von Argument 2 (gehört zu 'Environment_CheckForError') Konvertierung zwischen
Connection.c:1172: Fehler: Zu viele Argumente für Funktion 'Environment_CheckForError'
Connection.c:1176: Fehler angegeben : „udt_Connection“ hat keinen Namen „sessionHandle“-Mitglied
Lösung:
Dieser Fehler tritt in Version 5.0.3 bitte nicht auf Beachten Sie, dass unter ORACLE_HOME ein Verzeichnis vorhanden sein muss. Dieses Verzeichnis muss die für die Kompilierung erforderlichen Quelldateien enthalten. Die Quelldateien sind nicht im Oracle Instant Client enthalten. Ich habe es aus dem Verzeichnis D:/oracle/product/10.2.0/client_1/oci/include auf dem Windows-Client kopiert.
4.Importfehler
>>> import cx_Oracle Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: /usr/lib/oracle/10.2.0.4/client64//lib/libnnz10.so: cannot restore segment prot after reloc: Permission denied >>> import cx_Oracle Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: /usr/lib/oracle/10.2.0.4/client64//lib/libclntsh.so.10.1: cannot restore segment prot after reloc: Permission denied >>> import cx_Oracle >>>
chcon -t texrel_shlib_t cd $ORACLE_HOME/libnnz10.so chcon -t texrel_shlib_t cd $ORACLE_HOME/libclntsh.so.10.1
5. Laufzeitfehler
Traceback (most recent call last): File "oracle_conn.py", line 9, in ? connection = cx_Oracle.Connection(u"oracle/oracle123@CCIP") cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle
Selinux ausschalten:
Befehl ausführen: vim /etc/selinux/configSelinux=enforcing oder permissive in deaktiviert ändern
Befehl ausführen: setenforce 0
Es gibt ein Problem mit dem UNICODE-Installationspaket
Traceback (most recent call last): File "./oracle_conn.py", line 22, in ? folderIds=cursor.fetchmany(10) cx_Oracle.DatabaseError: OCI-22061: Message 22061 not found; No message file for product=RDBMS, facility=OCI; arguments: [T
Das obige ist der detaillierte Inhalt vonBei der Installation von cx_Oracle aufgetretene Fehler und Lösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!