ImportError: nessun modulo chiamato Foundation
-
06-07-2019 - |
Domanda
Sto cercando di seguire le istruzioni per la risposta accettata allo sviluppo di "PyObjC con Xcode 3.2". Li ripubblicherò qui poiché non ho abbastanza rappresentante per commentare la vera domanda:
Ecco cosa ho fatto per far funzionare PyObjC in Snow Leopard:
-
Usando il Finder, sono andato su
Vai > Connetti al server ...
e connesso a http: / /svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/ come ospite. -
Ho quindi creato una cartella chiamata
Xcode
sul mio sistema locale in~ Library / Application Support / Developer / Shared / Xcode /
. (Forse hai già questa cartella, ma non ho ancora personalizzato nulla per me stesso.) -
Ho copiato la cartella
Modelli di file
dal server red bean nella mia nuova cartella Xcode. -
Copia la cartella
Modelli di progetto
in un'altra posizione, ad esempio il desktop. -
Usando il Terminale, sono passato alla cartella Temporanea dei modelli di progetto sul mio desktop ed ho eseguito questo comando per " build " il modello .:
$ 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 \ Supporto / Sviluppatore / Condiviso / Xcode / Progetto \ Modelli / Cocoa-Python \ Applicazione
Quando provo a eseguire la riga che inizia con ./project-tool.py
, visualizzo il seguente errore nel terminale:
Traceback (most recent call last):
File "./project-tool.py", line 22, in <module>
from Foundation import NSDictionary
ImportError: No module named Foundation
Sto eseguendo Snow Leopard e ho installato Xcode 3.2.1 e ho letto che questo modulo dovrebbe già essere installato e funzionante. Ho letto che puoi verificare se i moduli PyObjC funzionano eseguendo > > > import objc
nella riga di comando di Python. Quando eseguo questo, ottengo:
>>> import objc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named objc
Qualcuno potrebbe aiutarmi a dissipare questo errore? Sembra che dovrei essere in grado di fare tutto automaticamente con la mia installazione di Snow Leopard, ma non posso.
Soluzione 2
Okay, ho scoperto che, modificando la risposta di mjv, sono riuscito a farlo funzionare digitando
export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"
prima di eseguire la riga ./project-tool.py
. Trovo ancora ridicolo il fatto di doverlo fare e se qualcuno può capire perché, sarei felice di saperlo.
In questo modo anche il
>>> import objc
linea funzionante.
Altri suggerimenti
Ho avuto lo stesso problema. Penso che il mio sia stato causato usando homebrew per installare il mio Python su cui armeggiare.
Poiché ero preoccupato di mescolare le versioni di Python, piuttosto che creare il collegamento come descritto sopra, ho installato un nuovo pyobjc usando:
$ pip install pyobjc
Per interesse, da ( http://pythonhosted.org/pyobjc/ )
Il progetto PyObjC mira a fornire un ponte tra i linguaggi di programmazione Python e Objective-C.
È perché PyObjC è lì: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
Modifica: Ho trovato come realizzare " import objc " lavoro, solo: export PYTHONPATH = " /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/"
Aggiungerà tutte le directory al percorso python (sys.path)
Una delle due cose:
- Il modulo di finanziamento non esiste
- O l'interprete di Python non sa quando trovare questo file
Python cerca i moduli in PythonPath
Vedi questa domanda SO per maggiori dettagli su come Python Path viene creato ecc.
per python 2.7
export PYTHONPATH = " /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/"
Esegui python -v
per tracciare le dichiarazioni di importazione, funziona anche per la modalità interattiva.
Potrei accedere a un'installazione Python con Foundation sul mio OSX eseguendo / usr / bin / python file-to-run.py