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

但是,当我尝试运行Python接口(interface)随附的示例代码时,出现错误,提示该库的体系结构错误:



据我所知,这是因为除了我的库中的两个版本外,python可执行文件在内部还具有x86_64变体,因此更喜欢以该模式运行。对于某些脚本,我是否可以通过某种方法强制python可执行文件启动i386版本而不是x86_64版本?

最佳答案

如果您使用的是苹果系统python(在雪豹上),则可以使用

arch -i386 python

例如:
robin-mbp:~ $ arch -i386 /usr/bin/python2.6 -c "import sys; print sys.maxint"
2147483647

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

如果是您自己构建的python,则当前会在选择arch时出现错误,但是如果您使用this ticket中的pythonw.c进行重建,则可以正常工作。

10-05 23:37
查看更多