Python 3.7新应用引擎应用的本地开发服务器选项

m4pnthwp  于 2023-05-02  发布在  Python
关注(0)|答案(3)|浏览(137)

我有一个应用程序引擎应用程序,它在标准Python3运行时上部署和运行。我还可以使用普通命令(如flask run)在本地运行它。但是我无法像在2中运行应用程序那样运行它。7运行时与dev_appserver.py。我使用的是最新的gcloud版本,但运行dev_appserver.py会导致:
错误:Python 3及更高版本与Google Cloud SDK不兼容。请使用Python版本2。7.x.
我以为我们不应该再这样做了,直到它看到:https://cloud.google.com/appengine/docs/standard/python3/tools/local-devserver-command
开头是:

Python 3.7本地开发服务器选项

使用方法:
dev_appserver.py [options] yaml_path [files...]
dev_appserver.py是否与Python3兼容(也许我的路径中有一个旧版本)?如果没有,是否有一种新的方式来本地运行应用程序,将坚持应用程序。yaml(比如正确处理静态路径),并给予其他细节,比如dev_appserver.py提供的本地数据存储?

omjgkv6w

omjgkv6w1#

dev_appserver.py对Python 3的支持仍然有限。从运行本地开发服务器:

备注

  • 运行dev_appserver需要Python 2。7.12+在您的本地机器上。
  • 更新后的dev_appserver不支持在Windows上开发Python 3应用程序。

这可能是为什么它不是当地发展的推荐解决方案(或者至少还不是)。从本地运行:
我们不***建议您依赖像dev_appserver这样的工具,Google Cloud SDK提供的本地开发服务器。但是,如果您要将现有的App Engine应用程序从Python 2迁移到Python 3,我们已经更新了dev_appserver以简化此过程。对于所有其他本地开发场景,我们建议使用标准的Python测试方法。
例如,您通常可以使用Flask的开发服务器运行Flask应用程序:

python main.py

Django应用程序可以通过以下方式启动:

python manage.py runserver

要模拟生产AppEngine环境,可以在本地运行完整的WebServerGatewayInterface(WSGI)服务器。为此,请使用与应用中的entrypoint相同的命令。yaml,例如:

gunicorn -b :$PORT main:app
e4yzc0pl

e4yzc0pl2#

对于Windows 10:
解决方案是为windows安装一个linux子系统:https://learn.microsoft.com/en-us/windows/wsl/install-win10
I use the Ubuntu app from the windows store, and follow the installation for installing the gcloud component on linux inside the ubuntu terminal: https://https://learn.microsoft.com/en-us/windows/wsl/install-win10cloud.google.com/sdk/docs/#deb
在Ubuntu终端中,可以访问windows文件:C驱动器将是/mnt/c。回到我的工作文件夹,可以使用dev_appserver命令启动web应用程序。
使用windows中的导航器,我们可以正常使用localhost:8080访问Web应用程序。
开发仍然可以使用Windows中的IDE完成,在Ubuntu中运行服务器。

enxuqcxy

enxuqcxy3#

在2022年添加更新
1.从@dan-cornilescu在他的回复中提到的运行本地开发服务器的链接中,他们已经改变了措辞,并删除了写着*的文本。..我们不建议您依赖于像dev_appserver这样的工具。...*。相反,文本现在说
我们建议您使用标准的Python工具,例如
virtualenv
来创建隔离环境。..
1.看起来他们还增强了dev_appserver.py以与Python 3一起工作。现在运行本地开发服务器表明
要使用Python 3解释器运行dev_appserver,必须指定--runtime_python_path=[PATH_TO_PYTHON3_BINARY]标志。
1.我不知道为什么他们的文档给人的印象是,使用标准python工具优于dev_appserver.py的优势在于能够拥有虚拟环境,因为当你用dev_appserver.py运行你的Python3应用程序时,它会首先创建一个临时文件夹,在该文件夹中创建一个虚拟环境,并在那里安装你的requirements.txt文件的内容。
1.使用dev_appserver.py的缺点是,每次启动应用程序时,它都会创建一个新的虚拟环境并重新安装requirements.txt的内容。这意味着,当您仍在对应用程序进行故障排除(可能涉及多次重启)时,您最终会在tmp目录中发现大量文件夹,并且这些文件夹在应用程序关闭时不会被删除。还有安装要求所需的时间。

2023年4月25日更新- gcloud CLI版本422。0.0现在支持标志--python_virtualenv_path。这是一个目录,dev_appserver.py将在其中首次创建虚拟环境,应用程序的后续运行将使用该目录,而无需重新安装您的需求

1.如果你启动Cloud Datastore Emulator并设置dev_appserver.py的标志来使用它,那么你就可以在Python 3项目中使用的相同UI中查看你的数据(@michael这应该可以回答你关于UI的问题)。下面是一个屏幕截图

1.还有来自-https://github.com/GabiAxel/google-cloud-guihttps://www.npmjs.com/package/google-cloud-gui的第三方UI
1.我们的应用程序NoCommandLine也有一个用于数据存储的UI

相关问题