You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多进程调用导入函数时重复执行导入脚本问题求助

解决multiprocessing调用导入函数时重复执行被导入脚本的问题

问题根源

在Windows系统中,multiprocessing默认使用spawn方式启动子进程。这种方式会创建全新的Python解释器实例,重新导入主进程中用到的所有模块。你的plus.py脚本里存在顶级可执行代码(print('plus run')),这段代码会在模块被导入时自动执行,因此每次创建子进程都会触发这段代码,导致重复输出。

Linux/macOS默认使用fork方式启动子进程,不会重新导入模块,因此不会出现该问题,但为了跨平台兼容性,建议统一做如下处理。

解决方案

将plus.py中的顶级可执行代码放入if __name__ == "__main__":代码块中。这个条件判断只有在直接运行该脚本时才会成立,模块被其他脚本导入时不会执行块内代码。

修改后的plus.py代码

"""修改后的plus脚本"""
def plus():
    print(2+3)
    return 2+3

if __name__ == "__main__":
    # 仅直接运行该脚本时执行
    print('plus run')

修改后的运行结果

test
5
5
5
5

内容的提问来源于stack exchange,提问作者Chris Botos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:52:04