2009-10-23 3 views
18

Я стараюсь следовать инструкциям для принятого ответа на «PyObjC development с Xcode 3.2». Я буду перепечатывать их здесь, так как я не хватает респ прокомментировать актуальный вопрос:ImportError: Нет модуля с именем Foundation


Вот что я сделал, чтобы получить PyObjC работает в Snow Leopard:

  • Использование Finder , Я пошел в Go > Connect to Server... и подключился к http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/ в качестве гостя.

  • Я тогда сделал папку под названием Xcode в моей локальной системе на ~Library/Application Support/Developer/Shared/Xcode/. (Возможно, у вас уже есть эта папка, но я еще ничего не настроил для себя).

  • Я скопировал папку File Templates с сервера red-bean в мою новую папку Xcode.

  • Скопировал папку Project Templates в другое место, например Рабочий стол.

  • Используя терминал, переходите к временному проекту Шаблоны папку на моем рабочем столе и запустил эту команду, чтобы «построить» шаблон .:

$ 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


Когда я пытаюсь запустить линия, которая начинается с ./project-tool.py, я получаю следующее сообщение об ошибке в терминале:

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

I я запускаю Snow Leopard и установил Xcode 3.2.1 и прочитал, что этот модуль уже должен быть установлен и работать. Я прочитал, что вы можете проверить, работают ли модули PyObjC, выполнив >>> import objc в командной строке Python. Когда я запускаю это, я получаю:

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

Может ли кто-нибудь помочь мне развеять эту ошибку? Похоже, что я смогу сделать все это автоматически с помощью установки Snow Leopard, но я не могу.

ответ

5

Хорошо, оказалось, что, вносящие изменения ответа MJV, я был в состоянии заставить его работать, набрав

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

перед выполнением ./project-tool.py линии. Мне все еще кажется смешным, что я должен был это сделать, и если кто-нибудь может понять, почему, я был бы рад узнать.

Делать это также получил линию работу

>>> import objc 

.

+1

Если это помогает, я получил ту же ошибку при выполнении моего скрипта с помощью только «python» ... но если я его выполнил с помощью/usr/bin/python, то он будет работать (без необходимости экспорта каких-либо дополнительных путей). –

2

Одно из двух:

  • Либо модуль Fundation не существует
  • Или Python интерпретатор не знает, когда, чтобы найти этот файл

Python ищет модули в PythonPath

См. Это SO question для получения более подробной информации о том, как Путь Python создан и т. Д.

+0

Благодарим вас за это. Полезно знать, как редактировать Python Path. К сожалению, я не знаю, какой путь я должен добавить, чтобы включить Foundation. –

1

Запустить python -v, чтобы отслеживать импортные заявления, эта работа для интерактивного режима тоже.

+0

Извините, я побежал, и я получил выход. Я просто не понимаю, что я должен искать. –

4

Это потому, что PyObjC есть: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC

Edit: я нашел, как сделать "импорт ObjC" работа просто: экспорт PYTHONPATH = "/ System/Library/Каркасы/Python.framework/Версии/2,6/Дополнительно/Библиотека/питон /"

Это добавит все каталоги в пути питона (sys.path)

20

У меня была та же проблема. Моя причина была вызвана, я думаю, используя homebrew, чтобы установить мой собственный Python для возиться.

Потому что я беспокоился о смешивании версий питона, а не создавать ссылку, как описано выше, я установил новый PyObjC с помощью:

$ pip install pyobjc 

Для интереса, из (http://pythonhosted.org/pyobjc/)

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

2

для python 2.7

export PYTHONPATH = "/ System/Library/Frameworks/Python.framework/Версии/2.7/Дополнительно/lib/python /"

0

Я мог получить доступ к установке Python с помощью Foundation на моем OSX, запустив /usr/bin/python file-to-run.py