2010-04-27 10 views
2

J'ai des problèmes pour installer pyobjc sur SnowLeopard.Comment installer pyobjc sur l'installation python non-par défaut de SnowLeopard

Il est venu avec python 2.6 mais j'ai besoin de 2.5 alors j'ai installé 2.5 avec succès. Après cela, j'ai installé xcode. Après que je l'ai installé PyObjC avec « easy_install-2,5 PyObjC »

Mais quand je commence mon python 2.5 et de la ligne cmd essaie d'importer la Fondation, il est dit « aucun module nommé Fondation »

j'ai essayé de faire export PYTHONPATH="/Library/Python/2.5/site-packages/pyobjc_core-2.2-py2.5-macosx-10.6-i386.egg/objc" avant de démarrer l'interpréteur python mais toujours pas de chance (ce répertoire .egg est le seul répertoire d'installation de pyobjc, et il y a plusieurs autres fichiers oeuf dans les paquetages de site ... dans objc subdir il y a init .py fichier)

Bien sûr, à partir de la 2.6 tout fonctionne bien. Comment puis-je savoir ce qui ne va pas et que dois-je faire?

Lorsque j'imprime sys.modules à partir de python 2.6, je trouve que objc qui est importé est fondamentalement à partir du même emplacement d'installation "/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6 -universal.egg/objc/", alors pourquoi ça ne marchera pas pour 2.5?

Répondre

4

Ok, a trouvé quel est le problème.

Mon snowleopard est venu avec les deux python 2.6 (par défaut) et 2,5 installé

installé XCode objc pour les deux. Donc, fondamentalement, j'ai cassé mon pythonpath etc avec des installations manuelles python 2.5 et objc supplémentaires, en quelque sorte les bibliothèques n'étaient pas compatibles (mien et python original sont à la fois 2.5.4 mais version légèrement différente et ce qui est plus important probablement construit avec différentes versions Ce que j'ai fait est: en vérifiant que je commence tout avec python2.5 d'origine (sur mon système c'est dans /usr/bin/python2.5), en supprimant les mauvaises entrées de easy_install.pth dans les packages de site, et ajouter le chemin vers PyObjc à easy_install.pth.

Désolé de ne pas savoir plus tôt, mais j'espère que cela sera utile à quelqu'un dans le futur!