Компилируете рабочую сборку py2app для Leopard и Snow Leopard? - PullRequest
6 голосов
/ 29 августа 2009

В настоящее время я работаю над своим приложением PyObjC для Snow Leopard и успешно скомпилировал отдельное приложение. Мой вопрос был бы: как сделать так, чтобы сборка была также Leopard-совместимой, учитывая эти ошибки?

dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
  Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _fopen$UNIX2003
  Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
  Expected in: /usr/lib/libSystem.B.dylib

Это приложение py2app, скомпилированное Snow Leopard. Кроме того, при компиляции на Leopard возникает ошибка:

Traceback (most recent call last):
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 31, in <module>
    _run('main.py')
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 28, in _run
    execfile(path, globals(), globals())
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/main.py", line 17, in <module>
    from AppKit import *
  File "AppKit/__init__.pyc", line 10, in <module>
  File "Foundation/__init__.pyc", line 10, in <module>
  File "CoreFoundation/__init__.pyc", line 17, in <module>
  File "objc/_bridgesupport.pyc", line 129, in initFrameworkWrapper
  File "objc/_bridgesupport.pyc", line 53, in _parseBridgeSupport
ValueError: Unknown typestr
2009-08-29 19:30:14.530 MyApp[445:903] MyApp Error
2009-08-29 19:30:14.534 MyApp[445:903] MyApp Error
An unexpected error has occurred during execution of the main script

Любая помощь будет оценена. Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Я сделал это недавно, и уловка состояла в том, чтобы создать отдельную версию на Leopard установке.

По умолчанию, если у вас не установлена ​​версия Python с открытым исходным кодом, py2app создаст полу-автономное приложение, которое имеет символические ссылки на файлы ОС.

Если вместо этого вы создаете автономную версию приложения, то интерпретатор и вспомогательные файлы внедряются в ваше приложение и поэтому совместимы на всех компьютерах, на которых выполняется ваше приложение. Инструкции по созданию полностью автономного приложения доступны здесь , но обратите внимание на комментарии блога, так как некоторые вещи изменились после написания поста в блоге.

Если у вас есть конкретные библиотеки, которые вам нужны, вы можете ссылаться на них в файле setup.py или, в качестве альтернативы, вы всегда можете добавить их вручную в каталог dylib (что было проще для меня, поскольку мне нужно было изменить сценарии запуска и не делать не хочу регенерировать), но убедитесь, что вы используете 32-битные библиотеки (которые будут на Leopard).

0 голосов
/ 18 ноября 2009
0 голосов
/ 09 октября 2009

Поскольку оба имеют разную архитектуру (соответственно 32 и 64 бита), я думаю, вам нужно создать 2 разных компиляции.

...