J'utilise Python 2.6 plus que j'utilise l'installation python par défaut de Leopard, donc je l'ai défini comme mon installation Python principale. Mais je préfère utiliser le Python par défaut pour un programme PyObjC sur lequel je travaille. Est-il possible de spécifier de l'utiliser uniquement à la place de Python 2.6?Comment choisir l'installation Python à exécuter dans un programme PyObjC?
Répondre
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.
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.
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");
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. –
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. –