【问题标题】:How to make a module accessible for all applications including GAE deployment process如何使所有应用程序都可以访问模块,包括 GAE 部署过程
【发布时间】:2011-03-28 08:46:12
【问题描述】:

我有一个 Python 模块,其中包含我所有的 GAE 应用程序都可能使用的一些实用程序。我自己创造了它。它是一个单独的文件夹,我有时想更新它的代码,进行重构等。我创建的每个应用程序都可以使用这个模块中的函数。现在我需要将模块文件夹复制到应用程序内的某个位置并导入其功能。这是一个普通的程序,没有什么花哨的。当我对模块的代码进行一些更新时,如果它已经导入到应用程序中,我需要覆盖这个模块。然后我只需使用 GAE 实用程序部署应用程序,一切正常。问题是 - 是否有可能在每个应用程序中没有很多模块副本,每次我更新其中的一些代码时都必须覆盖它们,但在一个地方有一个副本并自动从那里导入它?我知道我可以在 Python 搜索模块的地方复制模块代码。不过,当我将它部署到 GAE 环境中时,我仍然需要将此模块文件夹复制到应用程序中。所以,当我的所有应用程序在我的本地 PC 上时,我需要一个模块的副本,并且需要在我部署它时将该文件夹复制到应用程序中。有没有好的解决方案?谢谢。

【问题讨论】:

    标签: python google-app-engine deployment module gae-module


    【解决方案1】:

    您可以将模块存储在所有 GAE 应用程序之外的目录中,然后在所有 GAE 应用程序目录中创建指向该目录的符号链接。 appcfg.py 将跟随符号链接。引用自Python SDK docs

    如果您在应用程序目录中创建一个指向模块目录的符号链接,appcfg.py 将跟随该链接并将该模块包含在您的应用程序中。

    【讨论】:

    • 哇,我从来不知道我可以使用完全不同的方式。它就像一个魅力。现在看来我摆脱了复制和覆盖文件的额外例程。谢谢!
    • @Sergey,不客气。 ;) 如果你觉得你的问题已经解决了,别忘了接受答案:D
    • 你也可以使用版本控制——例如,一个 git subrepo。
    猜你喜欢
    • 2012-05-07
    • 2018-10-25
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多