Ich verwende Windows Server 2003 auf einem 64-Bit Itanium-Server, auf dem auch 64-Bit Oracle 10.2 läuft, und ich möchte cx_Oracle für Python 2.5 installieren. Ich habe cx_Oracle schon oft sowohl unter Windows als auch unter Linux verwendet und es auch schon auf 32-Bit-Versionen dieser Plattformen kompiliert, aber ich habe noch nie eine IA64-Kompilierung versucht.
Keiner der binären Builds von cx_Oracle unter http://cx-oracle.sourceforge.net/ 64 Bit sind, und ich erhalte nach der Installation eines dieser Programme einen Fehler, wenn ich versuche, die import cx_Oracle
Daher denke ich, dass es am besten ist, es aus dem Quellcode zu kompilieren.
Bei der Ausführung python setup.py build
dann erhalte ich die Fehlermeldung, dass Python mit Visual Studio 2003 erstellt wurde und dass ich etwas brauche, das kompatible Binärdateien erzeugen kann. Ich habe Visual Studio 2005, das anscheinend nicht die Rechnung aufgrund der Verknüpfung gegen eine andere Version der C-Standardbibliothek, und wahrscheinlich auch aus anderen Gründen passen. Leider steht Visual Studio 2003 nicht mehr zum Download zur Verfügung, und ich bin nicht sicher, wo ich es bekommen kann.
Also lade ich MinGW von http://sourceforge.net/projects/mingw/files/ aber auch diese ist nur in 32-Bit-Form verfügbar. Ich versuche es trotzdem, aber während der Kompilierung bekomme ich eine Fehlermeldung, dass eine der Oracle-DLLs, die ich verlinke, ein ungültiges Dateiformat hat.
Im Moment habe ich viele Möglichkeiten, und ich bin mir nicht sicher, worauf ich meine Bemühungen konzentrieren soll:
-
Ich konnte die 64-Bit-MinGW herunterladen von http://sourceforge.net/projects/mingw-w64/ und versuchen, das zu verwenden, außer dass es nur als Quelle verfügbar zu sein scheint, so dass ich den Compiler kompilieren müsste, wahrscheinlich mit Visual Studio 2005.
-
Ich könnte versuchen, eine x86-32-Bit-Version von Python zu verwenden und dann das Oracle Instant Client SDK von http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html und verwenden Sie diese dann, um cx_Oracle zu erstellen. Ich würde wahrscheinlich meine ORACLE_HOME auf dem Client festgelegt haben, so dass es nicht versuchen, gegen die 64-Bit-Server-DLLs zu verknüpfen, aber dies scheint, wie es funktionieren könnte.
-
Ich könnte versuchen, Python selbst aus dem Quellcode zu kompilieren, mit Visual Studio 2005, so dass ich dann Visual Studio 2005 verwenden könnte, um cx_Oracle zu erstellen und mir keine Gedanken über Binärkompatibilitätsprobleme zu machen. Ich habe Python viele Male unter Linux aus dem Quellcode kompiliert und hatte nie Probleme, also würde ich gerne glauben, dass es unter Windows genauso einfach ist.
-
Ich könnte versuchen, herauszufinden, wie ich Visual Studio 2005 dazu bringen kann, sich mit den richtigen DLLs zu verknüpfen und auf diese Weise kompatible Binärdateien zu erzeugen, ohne Visual Studio 2003 zu benötigen. Intuitiv scheint es wie Visual Studio sollte in der Lage sein, kompatible Binärdateien mit älteren Versionen von sich selbst zu produzieren, aber fast alle meine Compiler-Erfahrung ist mit gcc, so dass ich nicht wirklich wissen.
Ich bin mir nur nicht sicher, worauf ich meine Bemühungen richten soll. Hat jemand einen Vorschlag, wie es weitergehen soll? Ich kann einige der spezifischen Fehlermeldungen, die ich erhalten habe, kopieren/einfügen, wenn das hilfreich wäre.
Ich würde mich besonders freuen, von jemandem zu hören, der cx_Oracle auf einer 64-Bit-Itanium-Version von Windows zum Laufen gebracht hat - ich kann nicht der Erste sein, der das versucht.
1 Stimmen
Da das mingw-w64 Projekt auf sourceforge.net nach mingw-w64.org umzieht, schlage ich vor, die mingw-w64.org