Bei der Installation von cx_Oracle aufgetretene Fehler und Lösungen

Y2J
Freigeben: 2017-05-08 16:51:10
Original
3155 Leute haben es durchsucht

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: 找不到指定的程序。
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Fügen Sie die folgenden zwei Zeilen hinzu:

export ORACLE_HOME=/opt/instantclient_10_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
Nach dem Login kopieren

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
Nach dem Login kopieren

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参数
Nach dem Login kopieren

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
>>>
Nach dem Login kopieren
Dies liegt an den Einschränkungen von SELinux. Führen Sie den folgenden Befehl aus, um die Einschränkung aufzuheben:

chcon -t texrel_shlib_t cd $ORACLE_HOME/libnnz10.so
chcon -t texrel_shlib_t cd $ORACLE_HOME/libclntsh.so.10.1
Nach dem Login kopieren

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
Nach dem Login kopieren
Es ist immer noch eine Einschränkung von SELinux auf deaktiviert

Selinux ausschalten:

Befehl ausführen: vim /etc/selinux/config

Selinux=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
Nach dem Login kopieren
[Verwandte Empfehlungen]

1 kostenloses Video-Tutorial

2.

Anwendung von Python in der Datenwissenschaft

3.

Grundlegende Einführung in Python-Tutorial

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!