GoogleAppEngine и последняя версия Python2.7: расположение каталога "google" - PullRequest
3 голосов
/ 29 марта 2012

Последний Python2.7 имеет каталог google в dist-packages, что делает невозможным импорт каталога google, который содержит appengine, и других пакетов из другого места. Такой каталог необходим для работы импорта из кода GoogleAppEngine (GAE) на сервере dev_server. В противном случае такой импорт потерпит неудачу. Пример такого импорта:

from google.appengine.api import mail

, что дает

ImportError: No module named appengine.api

Эта проблема похожа на проблему в здесь и действительно следует за ответом Алекса Мартелли местоположение моего google импорта -

In [1]: import google
In [2]: google.__file__
Out[2]: '/usr/lib/python2.7/dist-packages/google/__init__.pyc'

, а не тот, куда я поместил разархивированные файлы GAE.

Любой рекомендуемый способ исправить это? Я уже думал о грязных хаки , чтобы исправить это, таких как размещение программных ссылок в каталоге Google dist-packages, но опять же, это dirty .

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Пакеты имеют специальный атрибут __path__, который сообщает интерпретатору Python, где искать модули и подпакеты. Изменяя это, вы можете позволить Python находить содержимое из обоих google каталогов. При использовании модуля pkgutil это должно работать (не проверено):

import pkgutil
import google
google.__path__ = pkgutil.extend_path(google.__path__, google.__name__)
0 голосов
/ 30 марта 2012

Вы уверены, что этот каталог Google поставляется с Python 2.7?Я тоже это видел, но он появился впервые, когда я установил какую-то утилиту от Google (думаю, это был Google Storage for Developers)Я также думаю, что есть файл .pth, связанный с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...