Pergunta

Eu estou tentando seguir as instruções para a resposta aceita com "desenvolvimento PyObjC com o Xcode 3.2". Vou repassar-lhes aqui desde que eu não tenho rep suficiente para comentar sobre a questão real:


Aqui está o que eu fiz para chegar PyObjC trabalho no Snow Leopard:

  • Usando o Finder, fui para Go > Connect to Server... e conectado a http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/ como um convidado.

  • Depois, fiz uma pasta chamada Xcode no meu sistema local em ~Library/Application Support/Developer/Shared/Xcode/. (Você já pode ter esta pasta, mas eu não tinha personalizado nada para mim ainda).

  • Copiei a pasta File Templates a partir do servidor de feijão vermelho em minha nova pasta Xcode.

  • copiou a pasta Project Templates para algum outro lugar, por exemplo, o ambiente de trabalho.

  • Usando o Terminal, navegou para a pasta temporária modelos de projeto na minha Desktop e correu este comando para "construir" o modelo:.

$ cd ~ / Desktop / Project \ Templates /

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


Quando tento executar a linha que começa com ./project-tool.py, eu recebo o seguinte erro no Terminal:

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

Estou executando o Snow Leopard e instalou Xcode 3.2.1 e li que este módulo já deve estar instalado e funcionando. Eu li que você pode testar se os módulos PyObjC estão trabalhando, executando >>> import objc na linha de comando Python. Quando eu executo isso, eu recebo:

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

Alguém poderia me ajudar a dissipar esse erro? Parece que eu deveria ser capaz de fazer tudo isso automaticamente com minha instalação do Snow Leopard, mas não posso.

Foi útil?

Solução 2

Ok, descobriu-se que, altera a resposta de mjv, eu era capaz de fazê-lo funcionar digitando

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

antes de executar a linha ./project-tool.py. Eu ainda acho que é ridículo que eu tinha que fazer isso e se alguém pode ver por que, eu ficaria encantado de saber.

Isso também tem a

>>> import objc

linha de trabalho.

Outras dicas

Eu tive o mesmo problema. Mina foi causado Acho usando homebrew para instalar o meu próprio Python para mexer com.

Porque eu estava preocupado sobre a mistura de versões do Python, em vez de criar a ligação, como descrito acima, eu instalei um novo PyObjC usando:

$ pip install pyobjc

Para interesse, a partir de ( http://pythonhosted.org/pyobjc/ )

Os objetivos do projeto PyObjC para fornecer uma ponte entre o Python e linguagens de programação Objective-C.

É porque PyObjC está lá: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC

Edit: Eu encontrei como fazer "importar objc" trabalho, apenas: exportação PYTHONPATH = "/ System / Library / Frameworks / Python.framework / Versions / 2.6 / Extras / lib / python /"

Ele irá adicionar todos os diretórios para o caminho python (sys.path)

Uma das duas coisas:

  • Ou o módulo Fundation não existe
  • Ou Python interpretor não saber quando encontrar esse arquivo

Python procura por módulos na PythonPath

Veja este questão SO para obter mais detalhes sobre como Python Path é criado etc.

para Python 2.7

export PYTHONPATH = "/ System / Library / Frameworks / Python.framework / Versions / 2.7 / Extras / lib / python /"

Executar python -v às declarações de importação traço, este trabalho para o modo interativo também.

Eu poderia acessar uma instalação do Python com a Fundação no meu OSX executando /usr/bin/python file-to-run.py

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top