2009-08-29 9 views
6

Actualmente estoy haciendo que mi aplicación PyObjC funcione para Snow Leopard y compilé con éxito una aplicación independiente. Mi pregunta sería, ¿cómo hago que la construcción también sea compatible con Leopard, dados estos errores?¿Compila una compilación de trabajo py2app para Leopard y Snow 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 

Se trata de una aplicación py2app compilada con Snow Leopard. Además, cuando compilo en Leopard, por otro lado, aparece este error:

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 

Cualquier ayuda sería apreciada. Gracias por adelantado.

Respuesta

0

Dado que ambos están en arquitectura distinta (32 bits y 64 bits respectivamente), creo que debe crear 2 compilaciones distintas.

3

He hecho esto recientemente y el truco consistía en construir una versión independiente en una instalación leopardo.

De forma predeterminada, a menos que tenga una versión de código abierto de Python instalada, py2app crea una aplicación semi-independiente que tiene enlaces simbólicos a los archivos del sistema operativo.

Si, en cambio, crea una versión independiente de la aplicación, entonces el intérprete y los archivos auxiliares se incrustan en su aplicación y, por lo tanto, son consistentes en todas las máquinas que ejecutan su aplicación. Las instrucciones para crear una aplicación totalmente independiente están disponibles en here, pero preste atención a los comentarios del blog ya que algunas cosas cambiaron después de que se escribió la publicación del blog.

Si tiene librerías específicas que usted necesita se puede hacer referencia a ellos en el archivo setup.py o, alternativamente, siempre se puede añadir manualmente al directorio dylib (que era más fácil para mí, ya que tenía que cambiar el guión de arranque y didn 't desea regenerar), pero asegúrese de utilizar las libs de 32 bits (que será en Leopard).

Cuestiones relacionadas