gpt4 book ai didi

pyramid - 如何在 Google App Engine 中运行 Pyramid 应用

转载 作者:行者123 更新时间:2023-12-02 13:28:52 27 4
gpt4 key购买 nike

我一直在尝试让 Pyramid 在谷歌应用程序引擎中运行,但没有成功。我尝试按照说明 here 进行操作但它似乎已经过时了,因为 gae 不再有 appcfg.py 了。我按照应用程序引擎文档中的 Flask 应用程序教程将其与上面的文档结合起来,得到了这个:app.yaml

runtime: python
env: flex

runtime_config:
python_version: 3
threadsafe: false

handlers:
- url: /static
static_dir: contractors/static
- url: /.*
script: auto

然后是main.py:

from pyramid.paster import get_app, setup_logging
ini_path = 'production.ini'
setup_logging(ini_path)
app = get_app(ini_path, 'main')

在 appengine shell 控制台中,我克隆了项目存储库,将所有内容安装在 virtualenv 中,然后尝试运行 python main.py但它返回找不到我的项目的发行版。然后我使用 easy_install Paste 然后分发错误解决了,但 python main.py 仍然无法运行。救命!

事实上,这很令人沮丧。我一直想知道为什么 aws、gcloud 和 azure cloud 不包括 Pyramid 教程,而 Flask 和 django 都在那里。社区也没有这些云服务的工作教程。作为一个新手,我认为 Pyramid 有问题。

最佳答案

这个 Pyramid 教程似乎已经过时了。另外,我认为它是为了与 App Engine 标准一起使用而设计的,因为“dev_appserver.py”命令不适用于灵活的环境(请注意 app.yaml 文件中的 env:flex 标记)。

此外,我按照此 Pyramid Documentation 设法让 Pyramid 在 App Engine Standard 上工作,类似于 Flask 应用程序。 :

注意你配置服务器的那一行,如果你使用这个方向和端口(127.0.0.1:8080),你将能够从Cloud Shell preview查看网页。 “本地”。

ma​​in.py 文件:

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response


def hello_world(request):
return Response('Hello World!')

def bye_world(request):
return Response('Bye!')

config = Configurator()

config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')

config.add_route('newHandler', '/bye')
config.add_view(bye_world, route_name='newHandler')

app = config.make_wsgi_app()

if __name__ == '__main__':
server = make_server('127.0.0.1', 8080, app)
server.serve_forever()

app.yaml:

runtime: python27
api_version: 1
service: default
threadsafe: yes

handlers:
- url: /.*
script: main.app

当您使用第三方库( Pyramid )时,您 need to specify them 。首先创建 requirements.txt 文件并输入以下行:

pyramid
repoze.lru

(repoze.lru库似乎是 Pyramid 要求)

通过 CLI 创建一个目录(在本示例中名为 lib),与其余文件的路径相同,并安装库:

mkdir lib 
pip install -t lib -r requirements.txt

此命令将安装“requirements.txt”文件中列出的所有库并将它们复制到“lib”文件夹。

现在创建一个名为 appengine_config.py 的文件,该文件将指示 App Engine 部署上传“lib”文件夹内的库,然后输入:

from google.appengine.ext import vendor

vendor.add('lib')

顺便说一句,您不需要使用 Flask 执行此操作,因为它是 App Engine 中的捆绑库,因此您不需要专门上传该库。

最后,为了在 Cloud Shell 中“本地”测试应用程序,您可以在 CLI 中运行:

python main.py

然后使用preview function在 Cloud Shell 中。

要从 CLI 部署应用程序:

gcloud app deploy

并使用以下命令在浏览器中查看它:

gcloud app browse -s <service_name_defined_in_app.yaml>

在此示例中,该命令为

gcloud app browse -s default

关于pyramid - 如何在 Google App Engine 中运行 Pyramid 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53428375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com