Python.framework 。
Python.framework存在于Xcode 10.8 SDK中:
/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?这是苹果停止使用这个框架的一个不那么微妙的暗示吗?或者我只是困惑?
这很重要,因为我有一个OS X应用程序链接Python.framework。我似乎无法使用基本SDK 构建设置 10.9 构建我的应用程序,因为缺少Python.framework,我必须链接到它。
我对为什么缺少这个框架(或者为什么我错了,实际上没有丢失)的解释感兴趣,以及解决方法的建议。
答案 0 :(得分:17)
有一个关于这个主题的官方Apple支持页面:
Changes To Embedding Python Using Xcode 5.0
基本上,他们所说的是不推荐使用与SDK Python.framework
集成Python的方法,而应该使用使用python.h
标头的标准* nix方法。
即(以下说明是摘要 - 请查看链接文章以获取更多详细信息):
#include <Python/Python.h>
替换为#include <Python.h>
; Python.framework
; .dylib
文件添加到Xcode; 至于理由,他们没有详细说明,他们只是提到:
因为Python是一个框架,所以它也存在于SDK中,即使Python(或任何脚本语言)在两个地方都有困难。由于长期和最近的问题,决定从SDK中删除Python。
答案 1 :(得分: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
Bonus round,有一个Python系统范围的设置对象,以及需要修复的'python-config'CLI程序,因此它们不再传播这个糟糕的设置。
答案 2 :(得分:0)
Apple似乎故意删除了Python.framework:
https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_9/index.html
来自Apple的10.9 API差异文件显示它已被删除。
答案 3 :(得分:-1)
如果您安装Xcode命令行工具,该框架将可用:
xcode-select --install