python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python AssertionError:can only test a child proc

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

作者:谷子君

这篇文章主要介绍了Python报错AssertionError:can only test a child proc问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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值错误。

贴张图

AssertionError

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: 真实值

总结

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

您可能感兴趣的文章:
阅读全文