Python 以32位模式运行OSX通用二进制文件

Python 以32位模式运行OSX通用二进制文件,python,macos,universal-binary,Python,Macos,Universal Binary,我有一个第三方库(Xerox有限状态工具的接口),它是通用二进制文件,内部有两个变体:一个PPC和一个i386变体。我还有一个到库的Python接口(它使用ctypes) 但是,当我尝试运行Python接口提供的示例代码时,我收到一个错误,抱怨库是错误的体系结构: ImportError:dlopen(/Users/arne/sw/lib/libxcfsm.dylib,10):未找到合适的映像。确实找到: /Users/arne/sw/lib/libxcfsm.dylib:mach-o,但架构错

我有一个第三方库(Xerox有限状态工具的接口),它是通用二进制文件,内部有两个变体:一个PPC和一个i386变体。我还有一个到库的Python接口(它使用ctypes)

但是,当我尝试运行Python接口提供的示例代码时,我收到一个错误,抱怨库是错误的体系结构:

ImportError:dlopen(/Users/arne/sw/lib/libxcfsm.dylib,10):未找到合适的映像。确实找到:
/Users/arne/sw/lib/libxcfsm.dylib:mach-o,但架构错误
据我所知,这是因为python可执行文件除了我的库中的两个版本外,在内部还有一个x86_64变体,并且更喜欢在该模式下运行。对于某些脚本,我是否有办法强制python可执行文件启动i386版本而不是x86_64版本?

如果您使用的是apple system python(在雪豹上),您可以使用

arch -i386 python
例如:

以32位模式启动解释器。您还可以为系统python设置一个环境变量(VERSIONER\u python\u preference\u 32\u位)


如果它是您自己构建的python,则当前存在arch选择的错误,但如果您使用pythonw.c从中重建,则效果良好。

如果您没有使用系统python,则可以继续并在
~/.bash\u配置文件中添加一行代码:

export VERSIONER_PYTHON_PREFER_32_BIT=yes
export VERSIONER_PYTHON_PREFER_32_BIT=yes