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

如何循环运行两个Python脚本 实现无终止往复调用执行

两个Python脚本循环互相调用持续运行的实现方案

你当前写的代码无法持续循环的核心原因是Python自带模块导入缓存机制:同一个模块在同一个解释器进程中仅会被执行一次,首次导入完成后,后续所有import语句都会直接读取缓存中的模块对象,不会重新执行模块内的代码。

以下是两种可实现循环运行的方案:

方案1:跨进程调用(长期运行推荐,无栈溢出问题)

通过subprocess模块每次启动新的解释器进程运行目标脚本,不会受导入缓存限制,也不会出现递归栈溢出问题。

  • file1.py 代码:
import subprocess
import sys

print("HI")
# 调用当前Python解释器运行file2.py
subprocess.run([sys.executable, "file2.py"])
  • file2.py 代码:
import subprocess
import sys

print("Hello")
# 调用当前Python解释器运行file1.py
subprocess.run([sys.executable, "file1.py"])

注意:该方案会持续创建新的子进程,如需终止运行,需要手动结束整个进程树,而非单个进程。如果需要降低CPU占用,可以在print语句后加import time;time.sleep(1)调整输出间隔。

方案2:单进程重载模块(适合短时测试)

通过importlib.reload强制重载模块,跳过导入缓存,在单进程内实现循环调用。

  • file1.py 代码:
print("HI")
import importlib
import file2
# 每次强制重载file2触发代码执行
importlib.reload(file2)
  • file2.py 代码:
print("Hello")
import importlib
import file1
# 每次强制重载file1触发代码执行
importlib.reload(file1)

注意:该方案本质是递归调用,会持续累加调用栈深度,达到Python默认递归深度上限(约1000次)后会抛出RecursionError自动终止,仅适合短时间测试使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:06:05