我有一个应用程序引擎应用程序,它在标准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
提供的本地数据存储?
3条答案
按热度按时间omjgkv6w1#
dev_appserver.py
对Python 3的支持仍然有限。从运行本地开发服务器:备注:
这可能是为什么它不是当地发展的推荐解决方案(或者至少还不是)。从本地运行:
我们不***建议您依赖像
dev_appserver
这样的工具,Google Cloud SDK提供的本地开发服务器。但是,如果您要将现有的App Engine应用程序从Python 2迁移到Python 3,我们已经更新了dev_appserver
以简化此过程。对于所有其他本地开发场景,我们建议使用标准的Python测试方法。例如,您通常可以使用Flask的开发服务器运行Flask应用程序:
Django应用程序可以通过以下方式启动:
要模拟生产AppEngine环境,可以在本地运行完整的WebServerGatewayInterface(WSGI)服务器。为此,请使用与应用中的entrypoint相同的命令。yaml,例如:
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中运行服务器。
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-gui、https://www.npmjs.com/package/google-cloud-gui的第三方UI
1.我们的应用程序NoCommandLine也有一个用于数据存储的UI