2009-05-09 14 views

Répondre

3

Enfin figuré celui-ci moi-même. La clé pour cela est de rendre le lien exécutable final avec /System/Library/Frameworks/Python.framework au lieu de /Library/Frameworks/Python.framework.

2

Essayez d'indiquer le chemin complet vers l'interpréteur Python dans la ligne de commande, quelque chose comme:

/foo/bar/python2.6 script.py 
/baz/python objcscript.py 

Vous pouvez également ajouter un tralala au début de votre script (première ligne):

#! /foo/bar/python2.6 script.py 

Si la variable d'environnement PYTHONPATH est définie, vous devrez peut-être la désactiver ou la modifier.

+1

PyObjC embarque l'interpréteur python dans un programme d'objectif-c, donc je n'exécute pas directement le fichier source. Ainsi, je ne peux pas utiliser une ligne shebang ou spécifier le chemin complet de l'exécutable python sur la ligne de commande. –

2

AFAIR cela m'a aidé (en main.m):

NSArray *pythonPathArray = [NSArray arrayWithObjects: resourcePath, [resourcePath stringByAppendingPathComponent:@"PyObjC"], @"/System/Library/Frameworks/Python.framework/Versions/Current/Extras/lib/python/", @"/Library/Python/2.5/site-packages", nil]; 

Aussi, assurez-vous que ce point à l'installation de Python que vous souhaitez utiliser (main.m):

Py_SetProgramName("/usr/bin/python"); 
+0

C'est très utile en effet. Cependant, cela semble être un problème de lien avec la bibliothèque correcte, donc au moment où le programme appelle ces fonctions, il utilise déjà le mauvais Python. –