【问题标题】:Can I deploy Python .pyc files only to Google App Engine?我可以仅将 Python .pyc 文件部署到 Google App Engine 吗?
【发布时间】:2011-02-15 10:00:47
【问题描述】:

我正在开发一个在 Google App Engine 上使用 Django 的项目。有人问我是否可以将某些代码部署为仅编译。

所以我想问题是我可以上传一个仅包含相关代码的 .pyc 文件吗?我已经在应用程序中使用 views.pyc 文件进行了基本测试,但一切都不起作用。我可以设置一些配置以允许 Google App Engine 仅使用 .pyc 文件吗?

【问题讨论】:

标签: python django google-app-engine pyc


【解决方案1】:

不,您不能 - 您只能上传源代码。但是,没有充分的理由这样做:您的代码将在需要时在服务器上进行字节码编译,并且在任何情况下都没有人能够访问您的代码。

【讨论】:

  • 是的,如果这是真的,这将是一个很好的建议。 “......在任何情况下,没有人能够访问您的代码。”索尼大概就是这么想的。如果您有企业级程序,则必须保护它。在任何情况下,无论是否是企业,信任没有 SLA(或至少保护您的第三方)的第三方都不是最佳做法。
  • @eficker 服务条款详细说明了我们可以查看您的来源的情况(它们非常有限); SLA 完全不同。
  • 注意:不再是这种情况;您可以在 Python 2.7 中上传 .pyc 文件(请参阅我的回答)。
【解决方案2】:

当您提出这个问题时,我意识到您无法做到这一点,但如果您使用 Python 2.7,现在您可以做到。见Sandboxing in Python 2.7

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 2016-09-15
      • 2017-09-29
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多