Спасибо, Ник, это было тем, что я тестировал ранее сегодня днем, я знаю, что это решение потребовало бы много памяти, если бы в каждом экземпляре кэшировалось несколько сценариев, но, как я видел, в настоящее время это лучший способ реализовать мой сценарий использования. , Любые советы, если динамическая загрузка кода будет доступна в версии 2.7? Это было бы прекрасно :-)

тоящее время я пытаюсь свернуть свой собственный «маршальный» код для python, чтобы я мог хранить скомпилированный код python в Google App Engine, чтобы динамически обслуживать сценарии. Как вы все можете убедиться, маршал не поддерживается в GAE, а pickle не может сериализовать объекты кода.

Я узнал, что могу построить объект кода сtypes.CodeType() но он ожидает 12 аргументов.

Как бы я ни пытался, я не могу найти никакой документации по этому вызову, и мне действительно нужно создать объект кода, чтобы я могexec() Это. Мой вопросКто-нибудь знает, каковы параметры для этогоtypes.CodeType() «конструктор» или какой-либо способ его интроспекции? я использовалinfo() определенная функцияВот но он выплевывает только общую информацию!

Быстрый FAQ:

Q: зачем компилировать код?A: Процессорное время в Google App Engine стоит настоящих денег, и каждый бит процессорного времени, который я могу сохранить, имеет значение.В: Почему бы не использовать «маршал»?A: Это один изнеподдерживаемые модули в Google App Engine.Q: Почему бы не использовать «рассол»?A: Pickle не поддерживает сериализацию объектов кода.

ОБНОВИТЬ

Инфраструктура Google App Engine не позволяет создавать экземпляры объектов кода по состоянию на 7 июля 2011 года, поэтому мой аргумент здесь спорный. Надеюсь, что это будет исправлено в будущем на GAE.