Google App-Engine为自己的Python应用程序运行setup.py安装

问题描述 投票:1回答:1

我意识到这可能是一个超级基本问题,但我正在使用一些基本教程在Google App Engine Standard上开发Python应用程序。

其中许多教程都是MVC,这很好,但代码文件没有组织。为了说明,请考虑这个演示:https://github.com/GoogleCloudPlatform/appengine-search-python-java/tree/master/product_search_python。作者在根中包含admin_handlers.pybase_handler.pyhandlers.py文件。任何更多的处理程序,这很快就会变得无法解决。

我熟悉的解决方案是重构一个更标准的项目结构,如:

my_app
    models
        __init__.py
        models_1.py
        models_2.py
    handlers
        __init__.py
        handlers_1.py
        handlers_2.py
setup.py

因此,在我的应用程序的任何文件中,我可以调用from my_app.models import model_1,然后访问该子包中专门定义的模型。

但是,我没有看到任何关于App Engine标准如何在部署中处理应用程序打包的文档(即在部署应用程序时运行setup.py install)。

有关于app-engine运行setup.py install如何打包外部python包的SO帖子,但不是app-engine如何运行你自己的材料,我没有在他们的教程中看到包含setup.py文件的任何示例。

在App-Engine支持的部署期间是应用程序打包吗?或者它是如此基本以至于他们没有记录?如果我想这样做,我是否必须采用像Django这样的框架,或者可以不使用它?

python google-app-engine packaging
1个回答
1
投票

setup.py文件适用于库,您尝试部署的是应用程序。

如果您想将所有处理程序/模型转换为单独的库(可能在其他应用程序中重用),您需要为其提供一个setup.py文件并将其托管在其他地方,可以在您自己的包索引上,也可以作为git repo ,App Engine将在构建步骤中安装它。

否则,您可以将这些文件作为应用程序的一部分包含在内,而不需要setup.py

.
├── main.py
├── my_library
│   ├── __init__.py
│   ├── handlers
│   │   ├── __init__.py
│   │   ├── handlers_1.py
│   │   └── handlers_2.py
│   └── models
│       ├── __init__.py
│       ├── models_1.py
│       └── models_2.py
└── requirements.txt

并在main.py中使用它们:

from my_library.models import model_1
© www.soinside.com 2019 - 2024. All rights reserved.