0

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

具体问题:

  1. Mac Python 2.7 可以加载 .dylib 吗?我的冷漠无视他们。

  2. 真的可以通过将 .dylib 重命名为 .so 文件扩展名来解决问题吗?各种帖子不同意这个问题。

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

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

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 位库时会遇到问题吗?有没有办法弥合差距?

4

1 回答 1

1

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

于 2014-07-21T23:38:32.523 回答