2013-10-24 17 views
14

系統

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

問題:

Python.framework似乎是從Xcode的10.9 SDK中缺失。OS X 10.9 SDK中缺少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 

Python.framework被故意刪除f從10.9 SDK?這是蘋果的一個不太微妙的暗示,是否停止使用這個框架?或者我只是困惑?

注:

這很重要,因爲我有一個鏈接對Python.framework一個OS X的應用程序。看起來我無法使用基本SDK構建設置10.9構建我的應用程序,因爲Python.framework丟失了,我必須鏈接到它。

我對這個框架爲什麼缺失(或者爲什麼我錯了並且實際上不會丟失)的解釋以及解決方法的建議感興趣。

+0

由於這是一個全新的問題,這家釀,MacPorts的等社區剛開上工作,你可能想搜索兩個其跟蹤的匹配錯誤,以及看一下所有的這裏的右邊的相關鏈接,因爲在所有其他數十人看起來相當渺茫之前,有人會將問題的答案張貼出來。 – abarnert

+0

(順便說一句,它不是真正的全新的,直到最近它的所有討論都是在NDA論壇上......但是我個人在幾個月前沒有找到答案,然後推遲到......現在我想這是後來...) – abarnert

+0

你能不能直接鏈接到/System/Library/Frameworks/Python.framework? –

回答

15

有關於這個問題的蘋果官方支持頁面:

Changes To Embedding Python Using Xcode 5.0

基本上,他們說什麼是否將Python與SDK Python.framework集成的方法已被棄用,並且應該使用使用python.h標頭的標準* nix方法代替。

也就是說(下面的說明是一個總結 - 請看有關詳細信息,鏈接的文章):

  1. 更換#include <Python/Python.h>#include <Python.h>;
  2. 將Python標題位置包含在標題搜索路徑中;
  3. 從項目構建中刪除Python.framework;
  4. 將python .dylib文件添加到Xcode;

至於理由,他們沒有詳細介紹這一點,他們只是提到:

因爲Python是一個框架,它也位於SDK,即使Python中(或任何腳本語言)在兩個地方有困難。由於長期和近期的問題,決定從SDK中刪除Python。

+2

請注意,標準的* nix做事的方式是'-I $(python-config --includes)'等等......但是在Xcode中很難做到比自己找到位置並靜態添加它... – abarnert

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-conf ig'CLI程序需要被修復,所以他們不會再傳播這個不好的設置。

-1

如果你安裝了Xcode中的命令行工具,該框架將變得可用:

xcode-select --install 
+0

嗯,我試過了,但是仍然沒有Python.framework在/Applications/Xcode.app /內容/開發/平臺/ MacOSX.platform /開發商/軟件開發工具包/ MacOSX10.9.sdk /系統/庫/ Frameworks'。 –