如何在Mac OS X上“链接”到Python框架?

时间:2011-07-29 13:49:18

标签: python xcode macos pyobjc

我正在尝试创建一个可以链接到Mac OS X内置Python框架的应用程序,并且可以在Mac OS X 10.5,10.6和10.7上运行。

  1. 如果我试图硬链接到框架(默认),Leopard会抱怨他找不到10.7。
  2. 如果我尝试弱链接框架(在编译器标志中使用-weak_framework Python),
  3. 在这两种情况下,Mac OS X部署目标都设置为10.5。

    我的main.m看起来像这样:

    #import <Python/Python.h>
    #import <Cocoa/Cocoa.h>
    
    int main(int argc, char *argv[])
    {
        Py_SetProgramName("/usr/bin/python");
        Py_Initialize();
        PyRun_SimpleString("import os; os.system('say okay')");
        return 0;
    }
    

    此程序适用于Mac OS X Lion,但在Mac OS X Leopard上崩溃。它以EXC_BAD_ACCESS(SIGBUS)异常(因为它引用地址0)给出“异常退出:总线错误”。

    有没有办法

    此处提供了测试程序的zip文件:

    http://slurf.net/files/TheWeakestLink.zip

1 个答案:

答案 0 :(得分:2)

我不确定你在这里要做什么,但这里有一些建议。这三个操作系统版本中系统Python框架所共有的唯一Python版本是Python 2.5,因此可能能够明确地定位该版本。但是,更有可能的是,您最好在应用程序中打包自己的Python框架。如果你小心,可以使用python.org 32-bit only installers中的一个用于此目的,尽管使用专门为10.5+构建的一个可能更好,特别是如果你需要在10.7上为你的应用程序构建C扩展模块。 py2app可以通过捆绑非系统Python框架来创建独立的Python应用程序,而无需Objective C前端。也许你可以将它用于你的目的。