2009-10-23 7 views
18

J'essaie de suivre les instructions pour la réponse acceptée à "développement PyObjC avec Xcode 3.2". Je les rediffuser ici depuis que je n'ai pas assez représentant de commenter la question réelle:ImportError: Aucun module nommé Foundation


Voici ce que je l'ai fait pour faire fonctionner PyObjC dans Snow Leopard:

  • Utilisation du Finder , Je suis allé à Go > Connect to Server... et connecté à http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/ en tant qu'invité. J'ai ensuite créé un dossier appelé Xcode sur mon système local au ~Library/Application Support/Developer/Shared/Xcode/. (Vous avez peut-être déjà ce dossier, mais je n'ai encore rien personnalisé pour moi-même).

  • J'ai copié le dossier File Templates du serveur haricot rouge dans mon nouveau dossier Xcode.

  • Copié le dossier Project Templates à un autre emplacement, par exemple, le bureau.

  • Utilisation du terminal, naviguée au projet temporaire dossier Modèles sur mon bureau et a couru cette commande pour « construire » le modèle .:

$ cd ~/Desktop/Project\ Templates/

$ ./project-tool.py -k -v --template ~/Desktop/Project\ Templates/Cocoa-Python\ Application/CocoaApp.xcodeproj/TemplateInfo.plist Cocoa-Python\ Application ~/Library/Application\ Support/Developer/Shared/Xcode/Project\ Templates/Cocoa-Python\ Application


Lorsque je tente de lancer le ligne qui commence par ./project-tool.py, je reçois l'erreur suivante dans le Terminal:

Traceback (most recent call last): 
    File "./project-tool.py", line 22, in <module> 
    from Foundation import NSDictionary 
ImportError: No module named Foundation 

I Je cours Snow Leopard et j'ai installé Xcode 3.2.1 et ai lu que ce module devrait déjà être installé et fonctionner. J'ai lu que vous pouvez tester si les modules PyObjC fonctionnent en exécutant >>> import objc dans la ligne de commande Python. Quand je cours ceci, je reçois:

>>> import objc 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named objc 

Quelqu'un peut-il m'aider à dissiper cette erreur? Il semble que je devrais être capable de faire tout cela automatiquement avec mon installation Snow Leopard, mais je ne peux pas.

Répondre

5

D'accord, il est apparu que, modifiant la réponse de MJV, j'ai pu le faire fonctionner en tapant

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/" 

avant d'exécuter la ligne ./project-tool.py. Je trouve toujours ridicule que je devais le faire et si quelqu'un peut voir pourquoi, je serais ravi de le savoir.

Faire cela a également obtenu le

>>> import objc 

travail en ligne.

+1

Si ça aide, j'ai eu la même erreur en exécutant mon script avec juste "python" ... mais si je l'exécute avec/usr/bin/python, alors ça marche (sans avoir à exporter de chemins supplémentaires). –

2

L'une des deux choses:

  • Soit le module Fundation ne sait pas existe
  • ou Python n'a pas interpretor quand trouver ce fichier

Python recherche des modules dans le PythonPath

Voir ce SO question pour plus de détails sur comment Python Path est créé etc.

+0

Merci pour cela. Il est utile de savoir comment éditer le chemin Python. Malheureusement, je n'ai aucune idée du chemin que je devrais ajouter pour incorporer Foundation. –

1

Exécutez python -v pour suivre les instructions d'importation, cela fonctionne aussi pour le mode interactif.

+0

Désolé, j'ai couru ceci et j'ai eu la sortie. Je ne comprends tout simplement pas ce que je suis censé rechercher. –

4

C'est parce que PyObjC est là: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC

Edit: J'ai trouvé comment faire "objc import" travail , juste: export PYTHONPATH = "/ System/Library/Frameworks/Python.framework/versions/2.6/Extras/lib/python /"

Il ajoutera tous les répertoires sur le chemin de python (sys.path)

20

J'ai eu le même problème. Le mien a été causé je pense en utilisant homebrew pour installer mon propre Python à bricoler.

Parce que j'étais inquiet pour le mélange des versions de python, plutôt que de créer le lien tel que décrit ci-dessus, j'ai installé une nouvelle PyObjC en utilisant:

$ pip install pyobjc 

Pour l'intérêt, de (http://pythonhosted.org/pyobjc/)

The PyObjC project aims to provide a bridge between the Python and Objective-C programming languages.

2

pour python 2.7

export PYTHONPATH = "/ Système/Bibliothèque/Frameworks/Python.framework/Versions/2.7/Extras/lib/python /"

0

Je pouvais accéder à une installation Python avec Foundation sur mon OSX en exécutant /usr/bin/python file-to-run.py