InvalidAppConfigError:重复模块my-service,Win10宿主机重启后Ubuntu VM服务异常
嘿,碰到这种重启后莫名出问题的情况确实头疼,我来帮你一步步排查解决:
首先检查命令是否写错了
你提到执行的命令是dev_appserver.py ./ app.yaml,这里注意到./和app.yaml之间多了个空格!这个很可能是问题根源——工具会把这两个当成两个独立的配置源来加载,如果当前目录下本身就有app.yaml,加上这个空格就会导致工具同时读取./(当前目录下的所有配置文件)和app.yaml,从而检测到重复的my-service模块。
先试试把命令改成正确的写法:
dev_appserver.py ./app.yaml # 或者如果当前就在app.yaml所在目录,直接用 dev_appserver.py app.yaml
检查是否存在多个重复的app.yaml文件
重启虚拟机后,可能你当前工作目录的层级变了,或者某个子目录里也有一个定义了service: my-service的app.yaml文件。执行下面的命令搜索当前目录及子目录下的所有app.yaml:
find . -name "app.yaml"
如果搜索结果有多个,逐个打开检查它们的service字段,确保只有你要启动的那个配置文件用了my-service,其他的要么修改service名称,要么启动时指定具体的配置文件路径,不要用通配或目录方式加载。
清理dev_appserver的缓存
dev_appserver会缓存一些配置和数据,重启虚拟机可能导致缓存状态异常。试试强制清理缓存后再启动:
dev_appserver.py ./app.yaml --clear_datastore=yes --clear_cache=yes
检查当前app.yaml是否有重复配置
虽然你给出的app.yaml片段里只有一个service: my-service,但也有可能实际文件里不小心重复添加了这个字段。打开app.yaml仔细检查,确保整个文件里只有一行service: my-service,没有重复的定义。
确认工作目录是否正确
最后确认下你执行命令时的工作目录是不是目标app.yaml所在的目录,用pwd命令查看当前路径,对比app.yaml的实际存放路径,确保没有进入错误的目录导致加载了其他配置。
内容的提问来源于stack exchange,提问作者tmwoods

