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

Я пытаюсь следовать инструкциям для принятого ответа на «Разработка 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 в другое место, например на Рабочий стол.

  • Используя Терминал, перешел во временную папку 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 / Какао-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, но я не могу.


person Chris Redford    schedule 23.10.2009    source источник
comment
модуль Foundation специфичен для платформы Mac?   -  person jxramos    schedule 21.06.2018
comment
@jxramos да, это так.   -  person Chris Redford    schedule 21.06.2018


Ответы (8)


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

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

$ pip install pyobjc

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

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

person Walton    schedule 04.08.2013

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

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

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

Это также получило

>>> import objc

линия рабочая.

person Chris Redford    schedule 23.10.2009
comment
Если это помогает, у меня такая же ошибка при выполнении моего скрипта только с python ... но если я выполняю его с помощью / usr / bin / python, он работает (без необходимости экспортировать какие-либо дополнительные пути). - person Joe Strout; 09.01.2014

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

Изменить: я нашел, как заставить работать "import objc", просто: export PYTHONPATH = "/ System / Library / Frameworks / Python.framework / Versions / 2.6 / Extras / lib / python /"

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

person ThmX    schedule 24.07.2010

для Python 2.7

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

person David Dehghan    schedule 30.03.2014

Одно из двух:

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

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

См. Этот вопрос SO для получения дополнительных сведений о том, как Путь Python создается и т. д.

person mjv    schedule 23.10.2009
comment
Спасибо тебе за это. Полезно знать, как редактировать путь Python. К сожалению, я понятия не имею, какой путь мне следует добавить, чтобы включить Foundation. - person Chris Redford; 23.10.2009

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

person Denis Otkidach    schedule 23.10.2009
comment
Извините, я запустил это и получил результат. Я просто не понимаю, что мне нужно искать. - person Chris Redford; 23.10.2009

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

person duhaime    schedule 27.08.2017

  1. удалите свой питон или удалите пакеты сайтов / Foundation | сайты-пакеты / фундамент

  2. pip3 установить pyobjc

имя Foundation конфликтует с https://pypi.org/project/foundation/

person mwp cheung    schedule 10.06.2020