我有一个类似守护进程的进程,它使用plumbum
在子进程中运行命令。我注意到它泄漏了Popen
个对象。
易于复制:
from plumbum.cmd import ls
x = [ ls() for i in range(500) ]
del x
import gc
gc.collect()
import objgraph
[ x for x in objgraph.most_common_types(10000) if 'Popen' in str(x) ]
=> [('Popen', 500)]
这是一个错误吗? (我找不到在哪里报告plumbum中的bug ...)
我也“试验”修改泄漏的Popen
对象,试图打破参考周期(假设存在一个,导致泄漏),但它没有帮助。
在linux上运行,plumbum版本1.14.0。
答案 0 :(得分:1)