【问题标题】:How to structure standard Python project (modules, libraries) for future use in Google App Engine?如何构建标准 Python 项目(模块、库)以供将来在 Google App Engine 中使用?
【发布时间】:2011-12-12 04:37:11
【问题描述】:

我目前正在开发一个正在增长的 Python 项目,我可能会在未来将其作为 GAE 中的 web 应用程序来实现。

随着项目的发展,我正在将可能可重用的代码修剪成单独的包和模块,这些包和模块目前位于我的 PYTHONPATH 上。

您对如何构建我的项目以及可重用的包以使其能够很好地适应未来的 GAE 项目有任何建议吗?

查看其他帖子中有关 GAE 项目结构的建议(例如 thisthisthis)似乎相当平淡 - 这是最好的方法吗?

第 3 方包/模块呢?是不是硬着头皮一开始就用VirtualEnv

非常感谢。 前言。

【问题讨论】:

    标签: python google-app-engine virtualenv


    【解决方案1】:

    只需将您的各种库放在应用程序根目录之外的包中即可。根目录会自动添加到您应用的sys.path

    如果您希望将它们放在根目录下的 lib 目录中,您可以这样做,但您必须编写一个模块,将该目录添加到 sys.path 的末尾,并在之前导入它你从lib 导入任何东西。

    使用 virtualenv 是一种选择,但我个人认为它不会给你带来太多好处,因为你不能在生产环境中运行 virtualenv,而dev_appserver 模拟生产环境。

    【讨论】:

      【解决方案2】:

      GAE Python SDK 在您的本地环境中运行时会创建自己的虚拟环境,因此 virtualenv 对您帮助不大。如果您想移植您的代码,或者至少从它们的文件夹结构中汲取灵感,那么有一些框架(如 web2py 和 django-nonrel)可以很好地与 GAE 配合使用。

      【讨论】:

        【解决方案3】:

        我的师父thesis 作为学生是在 App Engine 中实现的。该项目是开源的,你可以随心所欲地使用它,我希望你能明白这个想法,你可以根据自己的需要调整它。

        【讨论】:

        • 嘿——我试图检查您的项目,但得到“错误:您无权访问此存储库。”在比特桶。现在还能用吗?
        • 我删除了以前的版本,我即将完成第二个版本,配置错误。你现在可以再试一次。 CoffeeScript 也包含在结构中 ;)
        • 对于大型项目,我强烈建议看看这个架构gae-init.appspot.com
        【解决方案4】:

        我不能特别告诉你 GAE,但我可以告诉你,咬紧牙关与它无关 - 使用 VirtualEnv(和 virtualenvwrapper)将使你的 Python 开发更顺畅、更简单、更容易。

        开销低,好处多。

        开关。现在。

        【讨论】:

          猜你喜欢
          • 2019-03-09
          • 2015-01-28
          • 2020-01-16
          • 1970-01-01
          • 2016-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-22
          相关资源
          最近更新 更多