Ошибка импорта:Нет модуля с именем Foundation
-
06-07-2019 - |
Вопрос
Я пытаюсь следовать инструкциям принятого ответа на вопрос «Разработка PyObjC с помощью Xcode 3.2».Я опубликую их здесь, так как у меня недостаточно представителей, чтобы прокомментировать реальный вопрос:
Вот что я сделал, чтобы 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 ~/Рабочий стол/Проект\Шаблоны/
$ ./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\ Приложение
Когда я пытаюсь запустить строку, которая начинается с ./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, но я не могу.
Решение 2
Хорошо, оказалось, что, исправив ответ mjv, я смог заставить его работать, набрав
export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"
перед выполнением ./project-tool.py
линия.Я до сих пор нахожу смешным то, что мне пришлось это сделать, и если кто-нибудь поймет, почему, я был бы рад узнать.
Это также позволило получить
>>> import objc
линия рабочая.
Другие советы
У меня такая же проблема.Моя была вызвана, я думаю, использованием домашнее пиво чтобы установить свой собственный Python, с которым можно повозиться.
Поскольку я беспокоился о смешивании версий Python, вместо создания ссылки, как описано выше, я установил новый pyobjc, используя:
$ pip install pyobjc
Для интереса, от(http://pythonhosted.org/pyobjc/)
Целью проекта PyObjC является создание моста между языками программирования Python и Objective-C.
Это потому, что здесь есть PyObjC:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
Редактировать :Я нашел, как заставить работать «импорт объекта», просто:экспортировать PYTHONPATH="/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/"
Он добавит все каталоги в путь Python (sys.path).
Одна из двух вещей:
- Либо модуль Fundation не существует.
- Или интерпретатор Python не знает, когда найти этот файл.
Python ищет модули в PythonPath.
Видеть это ТАК вопрос для более подробной информации о том, как Путь Python создается и т. д.
для питона 2.7
экспортировать PYTHONPATH="/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/"
Бегать python -v
для отслеживания операторов импорта это работает и для интерактивного режима.
Я мог получить доступ к установке Python с Foundation на моем OSX, запустив /usr/bin/python file-to-run.py