Как «слабое звено» к Python Framework на Mac OS X? - PullRequest
1 голос
/ 29 июля 2011

Я пытаюсь создать приложение, которое может ссылаться на встроенную платформу Mac OS X Python и заставить его работать на Mac OS X 10.5, 10.6 и 10.7.

  1. Если я попытаюсьЖесткая ссылка на фреймворк (по умолчанию), Леопард жалуется, что не может найти 10.7.
  2. Если я попытаюсь слабо связать фреймворк (используя Python -weak_framework в флагах компилятора),

В обоих случаях цель развертывания Mac OS X установлена ​​на 10,5.

Мой main.m выглядит так:

#import <Python/Python.h>
#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[])
{
    Py_SetProgramName("/usr/bin/python");
    Py_Initialize();
    PyRun_SimpleString("import os; os.system('say okay')");
    return 0;
}

Эта программа работает в Mac OS XЛев, но вылетает на Mac OS X Leopard.Он выдает «Ненормальный выход: ошибка шины» с исключением EXC_BAD_ACCESS (SIGBUS) (поскольку он ссылается на адрес 0).

Есть ли способ

ZIP-файл тестовой программыдоступно здесь:

http://slurf.net/files/TheWeakestLink.zip

1 Ответ

2 голосов
/ 29 июля 2011

Я не уверен, что вы пытаетесь сделать здесь, но вот несколько советов.Единственная версия Python, общая для системных платформ Python в этих трех выпусках операционной системы, - это Python 2.5, поэтому вы можете иметь возможность явно указывать эту версию.Но, скорее всего, вам лучше было бы упаковать собственную платформу Python в свое приложение.Если вы осторожны, вы можете использовать один из python.org 32-битных инсталляторов для этой цели, хотя может быть лучше использовать один специально созданный для 10.5+, особенно если вам нужно собрать модули расширения Cдля вашего приложения на 10.7. py2app может создать отдельное приложение Python, объединяя несистемные платформы Python, без необходимости использования внешнего интерфейса Objective C.Возможно, вы можете использовать его для своих целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...