Подтвердить что ты не робот

ImportError: нет модуля с именем Foundation

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


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

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

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

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

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

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

$cd ~/Desktop/Project\Templates/

$./project-tool.py -k -v --template ~/Desktop/Project\Templates/ Cocoa -Python\Application/CocoaApp.xcodeproj/TemplateInfo.plist Cocoa -Python\Application ~/Library/Приложение\Поддержка/Разработчик/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

Я запускаю 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, но я не могу.

4b9b3361

Ответ 1

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

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

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

Выполнение этого также получило

>>> import objc

работает.

Ответ 2

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

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

$ pip install pyobjc

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

Проект PyObjC направлен на предоставление моста между языками программирования Python и Objective-C.

Ответ 3

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

Изменить: Я нашел, как сделать работу "import objc", просто: экспорт PYTHONPATH = "/System/Library/Frameworks/Python.framework/Версии/2.6/Дополнительно/lib/python/"

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

Ответ 4

Одна из двух вещей:

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

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

См. этот вопрос SO для получения более подробной информации о том, как Python Path и т.д.

Ответ 5

для python 2.7

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

Ответ 6

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

Ответ 7

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