• Официальный сайт SDK
  • Сайт с примерами кода

Компоненты языка Python

Среда выполнения использует для своей работы интерпретатор Python версии 2.5.

Весь код, подготовленный для работы с ней, должен быть написан на чистом языке Python и не должен включать каких-либо расширений на языке C или другого кода, требующего компиляции.

Среда включает в себя стандартную библиотеку языка Python. Некоторые модули были отключены, так как их функции не поддерживаются платформой App Engine, например, работа с сетью или запись файлов. Однако модуль os остался доступен, но все его неподдерживаемые возможности были заблокированы. Попытка импортирования неподдерживаемого модуля или использования недопустимых функций приведет к выдаче исключения.

Для обеспечения корректной работы с App Engine некоторые модули из стандартной библиотеки языка были заменены другими. Например:

  • Модуль cPickle является ссылкой на модуль pickle. Специфические возможности класса cPickle не поддерживаются.
  • Модуль marshal является пустым (не содержит кода). Его импортирование будет проведено успешно, но использование невозможно.
  • Следующие модули также не содержат кода: imp, ftplib, select, socket
  • Модуль tempfile заблокирован, за исключением класса TemporaryFile, который ссылается на StringIO.
  • Модуль logging доступен для использования, причем это использование даже настоятельно рекомендуется! Смотрите далее.

В дополнении к стандартной библиотеке языка, среда выполнения платформы включает сторонние библиотеки:

  • Django 0.96.1
  • WebOb 0.9
  • PyYAML 3.05

Вы также можете подключить другие дополнительные библиотеки, написанные на чистом языке Python, включив файлы с их кодом в каталог своего приложения. Кроме того, достаточно создать символическую ссылку на каталог с этими модулями и программа appcfg.py загрузит на сервер эти библиотеки вместе с приложением.

Среда выполнения добавляет к системному пути корневой каталог приложения (там где находится файл app.yaml). Модули, которые вы создаете для приложения, будут доступны с использованием относительного пути от каталога вашего приложения. Не забудьте создать файлы __init__.py в подкаталогах, чтобы Python распознал их как пакеты.