你实际上在这里问了两个问题。
- 如何在我的 GAE 项目中包含外部库?
你有正确的想法。无论您采用哪种方式,都必须以某种方式将 Flask 及其依赖项包含在 GAE 项目的根目录中。一种方法是直接将副本放在那里。
第二种方法是使用符号链接指向包含外部库的文件夹。我不确定 Flask,但通常外部存储库在子目录中包含实际的库代码 - 所以通常你不希望 GAE 应用程序中的存储库的根目录,而只是实际源代码的根目录。在这种情况下,更容易放置链接到源文件夹的符号链接。
- 如何在我的源代码库中管理外部库?
这是一个更难回答的问题,因为它取决于您使用的源代码控制工具。是的,您确实希望每个人都使用相同版本的外部库,并且它们应该以某种方式包含在您的源代码管理中。
如果您使用的是 git,git submodule
那是要走的路。开始有点混乱,但它会完成工作。
我推荐一个看起来像这样的回购结构
repo/
thirdparty/
flask/
other_dependency/
another_dependency/
README.TXT
setup.py
src/
app/
app.yaml
your_source.py
softlink_to_flask
softlink_to_other_dependency
softlink_to_another_dependency_src
在此示例中,您将外部库的源代码保存在第三方文件夹中。这些可能是 git 子模块。在 app 文件夹中,您有您的源代码,以及指向您的应用程序运行实际需要的适当文件的软链接。在这种情况下, another_dependency 的实际代码可能位于 another_dependency/src 文件夹中,而不是另一个依赖项的实际根目录。这样您就不需要在部署文件夹中包含不必要的文件,但您仍然可以将整个库保存在您的存储库中。