Google App-Engine 运行 setup.py 为自己的 Python 应用程序安装
Google App-Engine run setup.py install for own Python application
我意识到这可能是一个非常基础的问题,但我正在使用一些基础教程在 Google App Engine Standard 上开发一个 Python 应用程序。
其中许多教程都是 MVC,这很好,但代码文件没有组织。为了说明这一点,请考虑这个演示:https://github.com/GoogleCloudPlatform/appengine-search-python-java/tree/master/product_search_python。作者在根目录中包含一个 admin_handlers.py
、一个 base_handler.py
和一个 handlers.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
在部署您的应用程序时。)
有关于应用引擎如何运行 setup.py install
打包外部 python 包的 SO 帖子,但没有关于应用引擎如何运行你自己的包的 material,我不知道在他们的教程中看不到任何包含 setup.py
文件的示例。
App-Engine 支持部署期间的应用程序打包吗?或者它只是太基本以至于他们没有记录?如果我想这样做,我是否必须采用像 Django 这样的框架,或者可以不用?
setup.py
文件用于库,您尝试部署的是一个应用程序。
如果您想将所有 handlers/models 变成一个单独的库(可能在其他应用程序中重用),您需要给它一个 setup.py
文件并将其托管在其他地方,要么在您自己的包索引中,或作为 git 存储库,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
我意识到这可能是一个非常基础的问题,但我正在使用一些基础教程在 Google App Engine Standard 上开发一个 Python 应用程序。
其中许多教程都是 MVC,这很好,但代码文件没有组织。为了说明这一点,请考虑这个演示:https://github.com/GoogleCloudPlatform/appengine-search-python-java/tree/master/product_search_python。作者在根目录中包含一个 admin_handlers.py
、一个 base_handler.py
和一个 handlers.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
在部署您的应用程序时。)
有关于应用引擎如何运行 setup.py install
打包外部 python 包的 SO 帖子,但没有关于应用引擎如何运行你自己的包的 material,我不知道在他们的教程中看不到任何包含 setup.py
文件的示例。
App-Engine 支持部署期间的应用程序打包吗?或者它只是太基本以至于他们没有记录?如果我想这样做,我是否必须采用像 Django 这样的框架,或者可以不用?
setup.py
文件用于库,您尝试部署的是一个应用程序。
如果您想将所有 handlers/models 变成一个单独的库(可能在其他应用程序中重用),您需要给它一个 setup.py
文件并将其托管在其他地方,要么在您自己的包索引中,或作为 git 存储库,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