GAE 1.5.5 , похоже, имеет несколько отличных, долгожданных функций. Однако они пока не работают на меня.
Я загрузил и установил GAE 1.5.5 и использую вырожденное приложение AAA для тестирования.
Вот примерно мой app.yaml (с различными изменениями, внесенными для тестирования).
application: AAA # mystical creation.
version: alpha-1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /media
static_dir: media/
- url: /favicon.ico
static_files: media/images/favicon.ico
upload: media/images/favicon.ico
- url: /admin
script: AAA.app
login: admin
- url: /.*
script: AAA.app
skip_files:
- ^(.*/)?app\.yaml
libraries:
- name: django
version: "1.2"
- name: jinja2
version: latest
- name: yaml
version: latest
Я запускаю это на Mac OS X Lion (10.7.1).
Я предполагаю, что на самом деле я не использую среду выполнения Python 2.7, несмотря на объявление в app.yaml о ее использовании. Я не совсем уверен, как подтвердить эту теорию, но ошибки, с которыми я столкнулся, согласуются с ней. Эти ошибки воспроизводятся ниже.
Если путь Python для Google App Engine не задан, механизм приложения запускается с использованием Python 2.6.6.
Чтобы исправить это, я установил Python Path на /usr/bin/python2.7
в настройках Google App
Engine.
Я получаю следующую ошибку:
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/
google/appengine/tools/dev_appserver.py in
GetParentPackage(self=, fullname='AAA.app')
2334
2335 if self.find_module(fullname) is None:
=> 2336 raise ImportError('Could not find module %s' %
fullname)
2337
2338 return self._module_dict[parent_module_fullname]
builtin ImportError = , fullname =
'AAA.app'
: Could not find module AAA.app
args = ('Could not find module AAA.app',)
message = 'Could not find module AAA.app'
Где я пробовал AAA.app как:
from google.appengine.dist import use_library
use_library('django', '1.2') # otherwise we still get django 0.96
from django.core.handlers import wsgi
app = wsgi.WSGIHandler()
__ init __. Py
# same content as above
# same content as above
Обратите внимание, что я могу продолжать запускать CGI с измененными app.yaml и AAA.py, mutatis mutandis . Однако это все равно приводит к следующим ошибкам:
Когда я запускаю import jinja2
, я получаю ImportError
.
Без:
from google.appengine.dist import use_library
use_library('django', '1.2')
Я получаю Django 0.96.
Учитывая следующее:
Я считаю, что на самом деле не использую среда выполнения Python 2.7 GAE (т.е. объявление app.yaml игнорируется в SDK GAE 1.5.5).
Я надеюсь, что приведенное выше описание является полезным, и я был бы признателен за любые мысли относительно того, что может быть происходящее здесь - и возможные решения.