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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top