我相信在 Windows 上,因为没有fork,所以multiprocessing模块会在新的 Python 进程中重新加载模块。
您需要在主脚本中包含此代码,否则会发生非常讨厌的崩溃
if __name__ == '__main__':
from multiprocessing import freeze_support
freeze_support()
我有一堆模块,它们在模块级别包含调试打印语句。因此,无论何时加载模块,都会调用 print 语句。
每当我并行运行某些东西时,所有这些打印语句都会被执行。
我的问题是,是否有办法查看多处理模块是否正在导入一个模块,如果是这样,这些打印语句会静音吗?
我基本上是在寻找是否有类似的东西:
import multiprocessing
if not multiprocessing.in_parallel_process:
print('Loaded module: ' + __name___)
到目前为止我一直找不到它。这可能吗?