Спасибо, это отличный ответ. «потому что это не работает» было бы плохо, но «вот что вы делаете, чтобы это исправить» действительно очень полезно :-)

ановил и настроил PyDev версии 1.6.5.2011020317 внутри Eclipse, работающей в Mac OS X 10.6.6:

Версия: Helios Service Release 1 Идентификатор сборки: 20100917-0705

Я использовал «Auto Config» для настройки интерпретатора Python: он правильно найден/usr/bin/python (это версия Python 2.6.1) и добавлены различные системные папки вPYTHONPATH, в том числе/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC, В настоящее времяэтот путь правильный путь кFoundation модуль в OS X, как показывает интерпретатор командной строки:

$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Foundation
>>> Foundation.__path__
['/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC/Foundation']

Так почему же PyDev жалуется на «неопределенную переменную из import: NSDictionary» для этого класса:

import Foundation

class MyClass(object):

    def __init__(self, projectPath):
        '''
        Constructor
        '''
        self.projectDict = Foundation.NSDictionary.dictionaryWithContentsOfFile_(projectPath)

когда я смогу без проблем использовать этот класс из интерпретатора командной строки?

ОбновитьОК, я узналПочему он жалуется, чтоFoundation модуль использует ScriptingBridge для динамической генерации классов - вероятно, pydev на самом деле не импортирует модуль, чтобы увидеть, какие классы находятся внутри, он просто ищет.py[c] файлы. Итак, пусть мой вопрос будет не «почему это происходит», а «что мне сделать, чтобы это исправить»?

Ответы на вопрос(1)

Ваш ответ на вопрос