我可以将Python .pyc文件仅部署到Google App Engine吗?

问题描述:

我正在使用Google App Engine上的Django项目。我被问到是否有些代码可以只编译部署。我可以将Python .pyc文件仅部署到Google App Engine吗?

所以我想问题是我可以上传只包含有问题的代码段的.pyc文件吗?我已经在应用程序中使用views.pyc文件进行了基本测试,并且不起作用。是否有一些配置或其他设置可让Google App Engine只使用.pyc文件?

+3

你知道.pyc可以反编译/反汇编吗? http://stackoverflow.com/questions/48211/free-python-decompiler-that-is-not-an-online-service – ThiefMaster 2011-02-15 10:09:49

我意识到当你问这个问题时你不能这样做,但是现在你可以,如果你使用Python 2.7。见Sandboxing in Python 2.7

您可以上传和使用.pyc,但不与.py文件组合。您可以上传包含.py.pyc文件(或其组合)的zip文件。

为什么你想这样做呢?因为.py文件会上传到Google基础架构,并且只有在您明确授予权限时才能看到.py文件。 但是,是的,没有理由为什么上传只有.pyc文件不应该工作。如果你尝试它,在你的开发环境中,你会发现它的工作方式就像BaseHTTPServer可以将Python编译模块作为处理程序一样。 此外,最近的GAE支持python文件的自动预编译,这意味着只要您更新应用程序,python文件就可以预编译并提供服务。所以,如果有人希望在应用程序引擎结束时检查.py文件,您可能需要在appcfg.py上传过程中使用--no_precompilation

+0

不正确 - 我们不允许用户上传Python字节码。 – 2011-02-15 11:14:56

+0

谢谢你纠正我,尼克。 – 2011-02-15 13:03:51

不,你不能 - 你只能上传源代码。尽管如此,没有理由这么做:您的代码将在需要时在服务器上进行字节码编译,并且在任何情况下都无法访问您的代码。