Могу ли я развертывать Python-файлы .pyc только в Google App Engine? - PullRequest
2 голосов
/ 15 февраля 2011

Я работаю над проектом, использующим Django в Google App Engine. Меня спросили, можно ли развернуть часть кода только как скомпилированный.

Так что я думаю, вопрос в том, могу ли я загрузить только файл .pyc, который содержит фрагмент кода, о котором идет речь? Я провел базовый тест с файлом views.pyc в приложении, и все не работает. Есть ли какая-либо конфигурация, которую я могу настроить, чтобы Google App Engine просто использовал файлы .pyc?

Ответы [ 3 ]

7 голосов
/ 15 февраля 2011

Нет, вы не можете - вы можете только загрузить исходный код.Однако для этого нет веской причины: ваш код будет скомпилирован с помощью байт-кода на серверах, когда это необходимо, и никто не сможет получить к нему доступ в любом случае.

6 голосов
/ 31 мая 2012

Я понимаю, что вы не могли сделать это, когда задавали этот вопрос, но теперь вы можете, если вы используете Python 2.7. Смотрите Песочница в Python 2.7 :

Вы можете загружать и использовать .pyc, но не в сочетании с .py файлами. Вы можете загружать zip-файлы, содержащие .py или .pyc файлы (или их комбинации).

0 голосов
/ 15 февраля 2011

Почему вы хотите сделать это в первую очередь?Потому что ваши .py файлы загружаются в инфраструктуру Google и могут быть просмотрены, только если вы явно дадите разрешения.Но да, нет никаких причин, почему загрузка только файлов .pyc не должна работать.Если вы попробуете это, в вашей среде разработки вы обнаружите, что он работает так же, как BaseHTTPServer может принимать скомпилированные модули Python в качестве обработчиков.Кроме того, недавний GAE поддерживает автоматическую прекомпиляцию для файлов Python, что означает, что как только вы обновляете свое приложение, файлы Python могут быть предварительно скомпилированы и обработаны.Таким образом, вам, возможно, придется поиграть с --no_precompilation во время загрузки appcfg.py, если ожидалось проверить файлы .py на конце ядра приложения.

...