Питон.фреймворк отсутствует в OS X 10.9 SDK. Почему? Также: Обходной Путь?
Система :
- OS X Mavericks 10.9 13A603
- Xcode Version 5.0.1 (5A2053)
Задача:
Питон.фреймворк , похоже, отсутствует в SDK Xcode 10.9.
Питон.фреймворк существует в 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.фреймворк по-прежнему доступен пользователям на системах 10.9 здесь:
/System/Library/Frameworks/Python.framework
Имеет Питон.фреймворк был намеренно удален из SDK 10.9? Является ли это не очень тонким намеком от Apple, чтобы прекратить использовать этот фреймворк? Или я просто запутался?
Примечания:
Это важно, потому что у меня есть приложение OS X, которое связывается с Python.рамки. Похоже, я не могу построить свое приложение с помощью базового SDK настройки сборки10.9 начиная с питона.фреймворк отсутствует, и я должен к нему привязаться.
Меня интересуют оба объяснения того, почему это фреймворк отсутствует (или почему я ошибаюсь, и он на самом деле не отсутствует), а также предложения по обходным путям.
4 ответа:
Была официальная страница поддержки Apple по этому вопросу:
Изменения Во Внедрении Python С Помощью Xcode 5.0
В основном, они говорят, что метод интеграции с Python с SDK
Python.framework
устарел, и вместо него следует использовать стандартный метод *nix с использованием заголовкаpython.h
.То есть (инструкции ниже являются кратким изложением - пожалуйста, загляните в связанную Статью для получения более подробной информации):
- заменить
#include <Python/Python.h>
на#include <Python.h>
;- включить расположение заголовка Python в путь поиска заголовка;
- удалить
Python.framework
из сборки проекта;- добавьте файл python
.dylib
в Xcode;Что касается обоснования, то они не детализируют его, они просто упоминают, что:
Поскольку Python-это фреймворк, он также находится в SDK, хотя Python (или любой другой скриптовый язык) испытывает трудности, находясь в двух местах. В связи как с долгосрочными, так и с недавними проблемами было принято решение об устранении Python из SDK.
Я столкнулся (и решил ) с этой проблемой:
/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 " не имел .рамочный суффикс, как обычно. Итак, я добавил, что также
Я все еще не мог заставить вещи работать. Потом я понял, что это такое. было: Короче говоря, я не знаю, почему это работает или почему они что-то изменили, и меня особенно раздражает, что питон.фреймворк больше не входит в SDK (конечно, всегда было странно связываться с ним, но мне потребуется время, чтобы переобучиться..-framework Python.framework
-framework
просто нужно изменить на-f
Бонусный раунд, есть Python system wide settings object, а также программа CLI "python-config", которую нужно будет исправить так они больше не пропагандируют эту плохую обстановку.
Похоже на Python.фреймворк был намеренно удален Apple:
Https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_9/index.html
Документ 10.9 API diff от Apple показывает, что он был удален.