14

系统

  • OS X 小牛队 10.9 13A603
  • Xcode 版本 5.0.1 (5A2053)

问题:

Xcode 的 10.9 SDK 似乎缺少Python.framework 。

Xcode 10.8 SDK 中存在 Python.framework:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Python.framework

但是,我的 Xcode 10.9 SDK 中缺少它:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/

这很奇怪,因为 Python.framework 仍然可供 10.9 系统上的用户使用:

/System/Library/Frameworks/Python.framework

是否有意从 10.9 SDK 中删除了 Python.framework?这是苹果公司停止使用这个框架的不那么微妙的暗示吗?还是我只是困惑?

笔记:

这很重要,因为我有一个链接 Python.framework 的 OS X 应用程序。由于缺少 Python.framework,我似乎无法使用Base SDK构建设置10.9构建我的应用程序,我必须链接到它。

我对为什么缺少这个框架(或者为什么我错了但实际上没有丢失)的解释以及解决方法的建议都很感兴趣。

4

4 回答 4

17

有一个关于这个主题的官方苹果支持页面:

使用 Xcode 5.0 嵌入 Python 的变化

基本上,他们所说的就是不推荐使用 SDK 与 Python 集成的方法,而应改用Python.framework使用标头的标准 *nix 方法。python.h

也就是说(下面的说明是一个摘要 - 请查看链接的文章以获取更多详细信息):

  1. 替换#include <Python/Python.h>#include <Python.h>;
  2. 在标头搜索路径中包含 Python 标头位置;
  3. Python.framework从项目构建中删除;
  4. 将python.dylib文件添加到Xcode;

至于理由,他们没有详细说明,他们只是提到:

因为 Python 是一个框架,所以它也存在于 SDK 中,尽管 Python(或任何脚本语言)在两个地方都有困难。由于长期和近期的问题,决定从 SDK 中删除 Python。

于 2013-11-03T21:59:23.483 回答
1

我也遇到(并解决了)这个问题:

/bin/sh ../libtool --silent --tag=CC  --mode=link gcc  -I../include -I../ -g -O2 -Wall \
    -isysroot <blah>/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk \
    -Wl,-F/System/Library/Frameworks \
    -framework Python \
    -u _PyMac_Error \
    -o libdnet.la -\
     rpath /usr/local/lib *.lo

最初跳出来给我的事情是我使用的 gnu libtool-Wl-F. 所以,我补充说

     -F/System/Library/Frameworks
     -L/System/Library/Frameworks (just to be safe)

然后,另一件非常明显的事情是“-framework Python”没有像往常一样的 .framework 后缀。所以,我也添加了

      -framework Python.framework

我仍然无法让事情正常进行。然后我弄清楚它是什么:

长话短说,我不知道它为什么起作用或为什么它们改变了任何东西,而且我对 Python.framework 不再在 SDK 中感到特别恼火(当然,链接到它总是很奇怪,但它我要花点时间重新训练自己。。

-framework只需要更改为-f

奖金回合,有一个 Python 系统范围的设置对象,以及需要修复的“python-config”CLI 程序,这样他们就不会再传播这个糟糕的设置了。

于 2013-10-28T05:24:37.500 回答
0

看起来 Python.framework 已被 Apple 有意删除:

https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_9/index.html

Apple 的 10.9 API 差异文档显示它已被删除。

于 2013-10-24T12:17:38.553 回答
-1

如果您安装 Xcode 命令行工具,该框架将变得可用:

xcode-select --install
于 2013-11-03T02:41:31.627 回答