Питон.фреймворк отсутствует в 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   14  

4 ответа:

Была официальная страница поддержки Apple по этому вопросу:

Изменения Во Внедрении Python С Помощью Xcode 5.0

В основном, они говорят, что метод интеграции с Python с SDK 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 (или любой другой скриптовый язык) испытывает трудности, находясь в двух местах. В связи как с долгосрочными, так и с недавними проблемами было принято решение об устранении 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 " не имел .рамочный суффикс, как обычно. Итак, я добавил, что также

      -framework Python.framework
Я все еще не мог заставить вещи работать. Потом я понял, что это такое. было: Короче говоря, я не знаю, почему это работает или почему они что-то изменили, и меня особенно раздражает, что питон.фреймворк больше не входит в SDK (конечно, всегда было странно связываться с ним, но мне потребуется время, чтобы переобучиться..

-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 показывает, что он был удален.

Платформа станет доступной, если вы установите средства командной строки Xcode:

xcode-select --install