2009-08-29 8 views
6

Je suis en train de faire fonctionner mon application PyObjC pour Snow Leopard et j'ai compilé avec succès une application autonome. Ma question serait, comment puis-je rendre la construction compatible avec Leopard, étant donné ces erreurs?Compilation d'une build de travail py2app pour Léopard et 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 

Il s'agit d'une application py2app compilée par Snow Leopard. En outre, lorsque je compile sur Leopard, d'autre part, cette erreur se produit:

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 

Toute aide serait appréciée. Merci d'avance.

Répondre

0

Puisque les deux sont sur une architecture distincte (respectivement 32 bits et 64 bits), je pense que vous devez créer 2 compilations distinctes.

3

Je l'ai fait récemment, et le tour était de construire une version autonome sur l'installation Leopard. Par défaut, à moins qu'une version open source de Python ne soit installée, py2app crée une application semi-autonome qui a des liens symboliques vers les fichiers OS. Si à la place, vous créez une version autonome de l'application, l'interpréteur et les fichiers de prise en charge sont intégrés dans votre application et sont donc cohérents sur toutes les machines exécutant votre application. Instructions sur la création d'une application entièrement autonome sont disponibles here, mais faites attention aux commentaires du blog que certaines choses ont changé après la rédaction du billet de blog. Si vous avez des bibliothèques spécifiques dont vous avez besoin, vous pouvez les référencer dans le fichier setup.py ou bien vous pouvez toujours les ajouter manuellement au répertoire dylib (ce qui était plus facile pour moi car je devais changer les scripts de démarrage et didn ne veux pas régénérer), mais assurez-vous d'utiliser les librairies 32 bits (ce qui sera sur Leopard).