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

问题描述

我正在获取以下堆栈跟踪:

追溯(最近一次通话):
_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()
在fix_threading_active
的第331行中的文件“ c:\ users \ x \ appdata \ local \ programs \ python \ python38 \ lib \ site-packages \ eventlet \ patcher.py” _os.register_at_fork(
AttributeError:模块“ os”没有属性“ register_at_fork”

在处理上述异常期间,发生了另一个异常:

追溯(最近一次通话):
_run_module_as_main中的文件“ c:\ users \ x \ appdata \ local \ programs \ python \ python38 \ lib \ runpy.py”,第194行 return _run_code(code,main_globals,None,
run_code
中的文件“ c:\ users \ x \ appdata \ local \ programs \ python \ python38 \ lib \ runpy.py”,第87行 exec(代码,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,在主目录
args.main(args)
文件“ c:\ users \ x \ appdata \ local \ programs \ python \ python38 \ lib \ site-packages \ nameko \ cli \ commands.py”,行
109,在主目录
来自.run import main
_find_and_load中的文件“”,第991行
退出
中的文件“”第152行 版本“ 107”中的文件“”,
RuntimeError:无法释放未获得的锁

这是我的冻结点:
amqp == 2.6.1
astroid == 2.4.2
certifi == 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
kombu == 4.6.11
lazy-object-proxy == 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
vine == 1.3.0
virtualenv == 20.0.31
Werkzeug == 1.0.1
wrapt == 1.12.1

解决方法

根据您在此处提供的堆栈跟踪,很明显,您正在Windows环境中工作。 nameko不支持基于Windows的环境。有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的系统上可用。