【问题标题】:Compiling a PyObjC application for 10.5 (Leopard) into xcode 10.6 (Snow Leopard)将 10.5 (Leopard) 的 PyObjC 应用程序编译成 xcode 10.6 (Snow Leopard)
【发布时间】:2010-07-19 14:37:12
【问题描述】:

我正在尝试在 10.5 上部署在 Xcode 3.2.X (Snow Leopard) 上开发的 PyObjC(或 Cocoa-Python)应用程序,该应用程序在 10.6 系统上运行良好。

应用程序无法在 10.5 上启动;它在启动时崩溃并给出以下错误消息(在崩溃报告中找到):

Dyld 错误消息: 未加载库:/System/Library/Frameworks/Python.framework/Versions/2.6/Python 引用自:/Users/myuser/Documents/myApp.app/Contents/MacOS/myApp 原因:找不到图片

似乎 Xcode 在某处硬编码了 Versions/2.6 python 框架路径(例如,而不是将其设置为 Versions/Current)。

但是,我无法找到可以修改此链接路径以设置为当前(或设置为 2.5,可能有条件)的位置...

【问题讨论】:

    标签: python cocoa xcode pyobjc


    【解决方案1】:

    您看到的路径很可能是您链接的 Python 框架版本的合法路径。至少,对于最新版本的 SnowLeopard (10.6.5),这是正确的路径。您可能已经在 Xcode 项目中正确设置了框架的路径。

    如果我不得不猜测,我会说当您遇到此崩溃时,您是在不同版本的 Mac OS X 上运行它,其中不存在 2.6 版本的 Python 框架。要探索此问题,请尝试导航到 Python 框架并列出您遇到此错误的系统上可用的版本:

    cd /System/Library/Frameworks/Python.framework/Versions
    ls -al
    

    这会产生什么输出?我猜它没有显示版本 2.6 目录。您在哪个版本的 Mac OS X 上运行它?您可能需要针对较早版本的系统编译和链接您的应用程序,以便让它在您看到此错误的任何系统上运行。

    【讨论】:

      【解决方案2】:

      XCode 有所谓的 SDK,可用于从最近的版本定位到较早的 Max OS X 版本。

      当前安装的 SDK 可以在 /Developer/SDKs 中找到。可以从 XCode DVD 安装其他 SDK。

      在使用 XCode 创建的项目中,可以通过以下方式选择 SDK。打开 Get info of a target,在 Architectures 部分中找到 Base SDK 设置。选择您需要的 SDK 并重新构建。

      例如,Mac OS X 10.5 SDK 包含 Python 版本 2.5 和 2.3,当前版本指向 2.5。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 2011-11-12
        • 1970-01-01
        • 2010-11-23
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多