开发者社区> 问答> 正文

将Python框架捆绑到Xcode应用程序中

我正在使用Xcode 4.6.2构建PyObjC应用程序,并试图弄清楚如何将Python框架与应用程序捆绑在一起,以便我可以在不依赖具有特定Python版本的主机系统的情况下进行引用。

(我之前曾问过这个问题,但是从那以后,我决定嵌入框架是更好的方法。)

我知道这是人们做的事情-以我的经验,大多数独立的Python应用程序都在其中打包了Python安装。但是我不知道如何让它为我工作。

我已经使用“构建阶段”“复制文件”面板将Python.framework复制到了我的项目中,并且Python.framework 确实显示在我的应用程序包中,但是我不知道如何获取该应用程序以引用它。

如果我在Xcode的“链接的框架和库”中链接到Python.framework,则该应用程序会正确构建,但是在10.6版启动时失败,并显示以下错误

Dyld Error Message:
    Library not loaded: /System/Library/Frameworks/Python.framework/Versions/2.7/Python
    Referenced from: {/path/to/my/app}
    Reason: image not found

...因为10.6仅具有Python 2.5,并且它正在搜索系统框架,而不是我的应用程序捆绑包中包含的框架。

如果我未链接到Xcode中的Python框架,则该应用程序无法构建。

那么,如何告诉我的应用程序我希望它使用在我的应用程序中捆绑的Python.framework ```js appname.app/Contents/Frameworks/Python.framework而不是位于的系统Python.framework /System/Library/Frameworks/Python.framework?


对于这个问题,我有些僵持,我们将不胜感激。

展开
收起
祖安文状元 2020-02-21 14:19:53 576 0
1 条回答
写回答
取消 提交回答
  • 不要尝试将/System/Library/Framework/Python.framework复制到您的应用程序捆绑包中,这几乎可以肯定不会满足您的要求(该应用程序无法在较旧的OSX版本上运行,并且在相同或较新的OSX版本),并且明智的使用许可证。

    要使用该框架,您需要通过使用install_name_tool或通过创建一个自定义python框架(使用@executable_path /../../ Framework / Python之类的名称)来重写加载命令,该自定义python框架已经具有正确的安装名称值。框架/ Python。

    我通常使用py2app来创建应用程序捆绑包(并不奇怪,因为我是py2app的维护者),该捆绑包也会自动包含所需的Python依赖项。

    2020-02-21 14:19:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载