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, но я не могу.
Ответы
Ответ 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