我在启动第一个 python nameko 服务时遇到问题

I'm having trouble starting up my first python nameko service

我得到以下堆栈跟踪:

追溯(最近一次通话最后一次):
_find_and_load
中的文件“”,第 991 行 _find_and_load_unlocked
中的文件“”,第 975 行 _load_unlocked
中的文件“”,第 671 行 exec_module
中的文件“”,第 783 行 _call_with_frames_removed
中的文件“”,第 219 行 文件“c:\users\x\appdata\local\programs\python\python38\lib\site-packages\nameko\cli\run.py”,第 4 行,在
中 eventlet.monkey_patch() # noqa(其余导入之前的代码)
文件“c:\users\x\appdata\local\programs\python\python38\lib\site-packages\eventlet\patcher.py”,第 334 行,在 monkey_patch
中 fix_threading_active()
文件“c:\users\x\appdata\local\programs\python\python38\lib\site-packages\eventlet\patcher.py”,第 331 行,在 fix_threading_active
中 _os.register_at_fork(
AttributeError: 模块 'os' 没有属性 'register_at_fork'

在处理上述异常的过程中,又发生了一个异常:

追溯(最近一次通话最后一次):
文件“c:\users\x\appdata\local\programs\python\python38\lib\runpy.py”,第 194 行,在 _run_module_as_main 中 return _run_code(代码, main_globals, None,
文件“c:\users\x\appdata\local\programs\python\python38\lib\runpy.py”,第 87 行,在 run_code
中 执行(代码,run_globals)
文件“C:\Users\x\AppData\Local\Programs\Python\Python38\Scripts\nameko.exe_main
.py”,第 7 行,
文件“c:\users\x\appdata\local\programs\python\python38\lib\site-packages\nameko\cli\main.py”,第
112 行,在 main
中 args.main(参数)
文件“c:\users\x\appdata\local\programs\python\python38\lib\site-packages\nameko\cli\commands.py”,第
109 行,在 main
中 从 .运行 导入 main
_find_and_load
中的文件“”,第 991 行 文件“”,第 152 行,在 exit
文件“”,第 107 行,发布
RuntimeError:无法释放未获得的锁

这是我的 pip freeze :
amqp==2.6.1
astroid==2.4.2
证书==2020.6.20
chardet==3.0.4
colorama==0.4.3
dnspython==1.16.0
eventlet==0.27.0
greenlet==0.4.16
idna==2.10
isort==5.5.2
海带==4.6.11
惰性对象代理==1.4.3
mccabe==0.6.1
模拟==4.0.2
单调==1.5
nameko==2.12.0
路径==15.0.0
path.py==12.5.0
pylint==2.6.0
PyYAML==5.3.1
请求==2.24.0
六个==1.15.0
toml==0.10.1
urllib3==1.25.10
藤==1.3.0
virtualenv==20.0.31
Werkzeug==1.0.1
wrapt==1.12.1

根据您在此处提供的堆栈跟踪,很明显您在 Windows 环境中工作。 nameko 不支持 Windows-based 环境。有一个 open issue in the nameko GitHub repository 请求支持 Windows(以及其他),但自 2019 年 4 月以来没有任何进展。

具体来说,Python 的 os.register_at_fork 方法,即导致错误的方法 ("AttributeError: module 'os' has no attribute 'register_at_fork'"),仅适用于 Unix-based 系统。