【发布时间】:2018-11-16 05:27:27
【问题描述】:
为什么我使用选项watcher_ignore_re 运行dev_appserver.py,我收到一条错误消息,即正则表达式is not JSON serializable。
这是开发服务器的错误吗?我是否不正确地使用此命令?命令和调用堆栈打印在下面。
C:\Users\mes65\Documents\MyProject>"C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\dev_appserver.py" ^
--watcher_ignore_re="(.*\.git|.*\.idea|tmp\.py)" ^
"C:\Users\mes65\Documents\MyProject"
WARNING 2018-06-06 09:28:59,161 appinfo.py:1622] lxml version "2.3" is deprecated, use one of: "3.7.3"
INFO 2018-06-06 09:28:59,187 devappserver2.py:120] Skipping SDK update check.
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 96, in <module>
_run_file(__file__, globals())
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\dev_appserver.py", line 90, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 454, in <module>
main()
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 442, in main
dev_server.start(options)
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 163, in start
bool(ssl_certificate_paths), options)
File "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\devappserver2\metrics.py", line 166, in Start
self._cmd_args = json.dumps(vars(cmd_args)) if cmd_args else None
File "C:\Python27\lib\json\__init__.py", line 244, in dumps
return _default_encoder.encode(obj)
File "C:\Python27\lib\json\encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Python27\lib\json\encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "C:\Python27\lib\json\encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <_sre.SRE_Pattern object at 0x00000000063C2188> is not JSON serializable
【问题讨论】:
-
FWIW,在 linux 上传递相同的
--watcher_ignore_re="(.*\.git|.*\.idea|tmp\.py)"参数就可以了。可能是特定于 Windows 的问题。如果您还没有这样做,请检查您的报价。删除或修改您的 args,包括watcher_ignore_re以查看您是否隔离了哪个 arg 片段正是令人不安的片段。 -
@DanCornilescu,您能否扩展您在评论中解释的内容并将其作为答案发布?谢谢。
-
Mac 上的 `--watcher_ignore_re '.*/frontend/.*'` 也会发生同样的事情。 SDK 版本 204.0.0。这是一个新问题,在我使用之前版本的 SDK 时它运行良好。
-
我恢复到 SDK 版本 200.0.0 并且问题已修复。
标签: python google-app-engine development-environment