Возникли проблемы при импорте классов промежуточного программного обеспечения в App Engine / Django - PullRequest
0 голосов
/ 16 декабря 2009

Пытаюсь подключить Facebook для работы на движке приложения, и поэтому я следую этим инструкциям:

http://www.slideshare.net/mrtrosen/lab305-django-facebook-connect-integration-example

Один из шагов требует, чтобы я добавил к своим middleware_classes, и поэтому я добавил следующее в settings.py (скопировано со слайда 18 в презентации выше):

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'facebook.djangofb.FacebookMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'facebookconnect.middleware.FacebookConnectMiddleware',
    )

Однако, когда я смотрю свое приложение локально (которое работало до добавления этого в settings.py), я получаю следующую ошибку:

Неправильно настроен: ошибка импорта middleware facebook.djangofb: "Нет модуль с именем facebook.djangofb "

Однако, когда я иду в терминал, я могу запустить python, и когда я набираю «import facebook.djangofb», я не получаю никакой ошибки.

К вашему сведению, пакет facebook находится в /Library/Python/2.6/site-packages.

Есть идеи относительно того, почему это может происходить? Я застрял на этом некоторое время, поэтому любая помощь будет принята с благодарностью.

Спасибо!

Ответы [ 2 ]

1 голос
/ 17 декабря 2009

Google App Engine использует python 2.5 runtime, я полагаю, поэтому вам придется либо переместить каталог facebook в проект, как предложено выше, либо переместить его в пакеты 2.5 сайта, если у вас также установлен python 2.5.

0 голосов
/ 16 декабря 2009

Все модули должны находиться в иерархии папок вашего приложения. Не забудьте также добавить необходимые пути к sys.path в обработчиках запросов вашего приложения.

Значение sys.path должно быть обновлено до следующего вида:

root = os.path.split(__file__)[0]
sys.path.insert(0, os.path.join(root, 'folder1'))
sys.path.insert(0, os.path.join(root, 'folder2'))

, где folderX содержится в папке app. Эта «корректировка пути» должна выполняться в каждом «скрипте точки входа запроса» в приложении.

...