我有一个第三方库(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进行重建,则可以正常工作。