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?
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
Wenn Sie das System Python nicht verwenden, können Sie eine Zeile zu Ihrem ~/.bash_profile
:
Tags und Links python macos universal-binary