如何使用Xcode构建python扩展

时间:2014-07-21 23:32:37

标签: python xcode macos python-extensions

请求:有人可以从上到下发布一个配方,用于创建一个Xcode项目,该项目将编译C代码以构建Python扩展吗?我在这里看过几篇涉及这个主题的帖子,但它们似乎令人困惑和不完整,并且他们不同意。

具体问题:

  1. Mac Python 2.7可以加载.dylib吗?我冷冷地忽略了它们。

  2. 通过将.dylib重命名为.so文件扩展名,可以真正解决问题吗?各种帖子在这个问题上存在分歧。

  3. .dylib和.so实际上是不同的格式吗?我可以在Xcode中进行设置以使其输出真正的.so格式吗?
  4. 如果Python无法加载扩展文件,是否有工具来诊断它?有什么方法可以查看文件,查看其格式,看看它是否与所需内容相匹配?

  5. 当我将.dylib重命名为.so时,收到以下错误消息:

  6. ImportError:dlopen(/Library/Python/2.7/site-packages/pypower.so,2):找不到合适的图像。找到了:     /Library/Python/2.7/site-packages/pypower.so:mach-o,但架构错误

    我的项目针对的是32位英特尔"建筑。我真的需要使用32位,因为我链接的一些旧库。 Python是否会在加载32位库时遇到问题?有没有办法弥合差距?

1 个答案:

答案 0 :(得分:0)

当前版本的Mac OS X中的Python可执行文件仅为64位,因此它加载的任何扩展名也必须是64位。如果您的库仅适用于32位系统,则无法从Python扩展链接到它。一种可能的解决方案可能是使用单独的32位可执行文件来加载库,然后从Python扩展中与该可执行文件进行通信。