我正在开发一个在 Google App Engine 上使用 Django 的项目。有人问我是否可以将某些代码仅部署为已编译。
所以我想问题是我可以上传一个仅包含相关代码的 .pyc 文件吗?我已经在应用程序中使用 views.pyc 文件进行了基本测试,但一切都不起作用。我可以设置一些配置或其他配置以允许 Google App Engine 仅使用 .pyc 文件吗?
我正在开发一个在 Google App Engine 上使用 Django 的项目。有人问我是否可以将某些代码仅部署为已编译。
所以我想问题是我可以上传一个仅包含相关代码的 .pyc 文件吗?我已经在应用程序中使用 views.pyc 文件进行了基本测试,但一切都不起作用。我可以设置一些配置或其他配置以允许 Google App Engine 仅使用 .pyc 文件吗?
不,你不能——你只能上传源代码。但是,没有充分的理由这样做:您的代码将在需要时在服务器上进行字节码编译,并且在任何情况下都没有人能够访问您的代码。
我意识到当你问这个问题时你不能这样做,但现在你可以,如果你使用 Python 2.7。请参阅Python 2.7 中的沙盒:
您可以上传和使用
.pyc
,但不能与.py
文件结合使用。您可以上传包含.py
或.pyc
文件(或组合)的 zip 文件。
你为什么要首先这样做?因为您的 .py 文件已上传到 Google 基础架构,并且只有在您明确授予权限时才能看到。但是,是的,没有理由只上传 .pyc 文件不起作用。如果你尝试一下,在你的开发环境中,你会发现它就像 BaseHTTPServer 可以将 python 编译的模块作为处理程序一样工作。此外,最近的 GAE 支持 python 文件的自动预编译,这意味着只要您更新应用程序,python 文件就可以预编译和提供服务。--no_precompilation
因此,如果有任何期望在应用引擎端检查 .py 文件,您可能不得不在 appcfg.py 上传期间进行操作。