您的当前位置:首页正文

Python报错AssertionError:can only test a child proc问题

2024-11-03 来源:个人技术集锦

Python报错AssertionError: can only test a child process

解决方法

1.num_workers=2

把num_workers由2改为0

2.from tqdm.auto import tqdm

替换为

from tqdm import tqdm

3.如果Debug过程报错,重新运行时需要结束上一次Debug的进程

在终端输入

ps -ef | grep multiprocess | awk ‘{print $2}' | xargs kill -9

以上输出中会多出来一个No such process的错误,可以忽略,出现原因是grep train也会产生一个进程,被自己过滤出来。

使用Run而非Debug时不存在这个问题

packetdrill: python的断言报错AssertionError

写自定义脚本遇到的一个小问题,在这打个标记!

packetdrill测试时,终端总会在自定义脚本的某python语句上报错,开始以为是自己的python语法问题,遂逐个检查。

后经调试,发现终端上的AssertionError是实际结果和脚本预期结果不同,packetdrill报告使用者的。

这说明:预期的assert TCP_INFO值错误。

贴张图

packetdrill 无法得到对应python语句声明的实际信息变量,如上图的tcpi_snd_cwnd。

图上只能说明脚本断言的tcpi_snd_cwnd在真实环境下不对!

蓝瘦啊,只能寄希望于google的大佬可以继续迭代packetdrill了。

后序

知道了怎么得到真实环境下的脚本断言信息了

只需要将python 语句由

%{ assert tcpi_snd_cwnd == 10}% 

变更为:

%{ assert tcpi_snd_cwnd ==10,tcpi_snd_cwnd}%

得到的结果既是下图

AssertionError: 真实值

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

您可能感兴趣的文章:
Top