Führen Sie eine universelle OS X-Binärdatei im 32-Bit-Modus aus

7

Ich habe eine Bibliothek von Drittanbietern (die Schnittstelle zu Xerox Finite-State-Tools), die als universelle Binärdateien mit zwei Varianten intern kommen: eine PPC- und eine i386-Variante. Ich habe auch eine Python-Schnittstelle zur Bibliothek (die ctypes verwendet).

Aber wenn ich versuche, den Beispielcode auszuführen, der mit der Python-Schnittstelle geliefert wurde, bekomme ich einen Fehler darüber, dass die Bibliothek die falsche Architektur ist:

ImportError: dlopen (/Users/arne/sw/lib/libxcfsm.dylib, 10): kein passendes Bild gefunden. Habe gefunden:
/Users/arne/sw/lib/libxcfsm.dylib: mach-o, aber falsche Architektur

Was ich daraus entnehmen kann, liegt daran, dass die ausführbaren Python-Dateien zusätzlich zu den zwei Versionen in meiner Bibliothek intern eine x86_64-Variante haben und lieber in diesem Modus laufen. Gibt es eine Möglichkeit für mich, die ausführbare Python-Datei zu veranlassen, die i386-Version anstelle der x86_64-Version zu starten, nur für einige Skripte?

    
arnsholt 31.10.2009, 16:18
quelle

2 Antworten

17

Wenn Sie das Apple System Python (auf Snow Leopard) verwenden, können Sie es mit

ausführen %Vor%

zB:

%Vor%

startet den Interpreter im 32-Bit-Modus. Es gibt auch eine Umgebungsvariable, die Sie für das System python (VERSIONER_PYTHON_PREFER_32_BIT) festlegen können.

Wenn es sich um ein selbst erstelltes Python handelt, gibt es zur Zeit einen Fehler bei der Auswahl des Arches, aber wenn Sie mit pythonw.c von dieses Ticket es funktioniert gut.

    
robince 31.10.2009, 16:28
quelle
3

Wenn Sie das System Python nicht verwenden, können Sie eine Zeile zu Ihrem ~/.bash_profile :

hinzufügen %Vor%     
Adam Greenhall 14.10.2011 20:13
quelle

Tags und Links