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

Python多进程未启动:PyCharm Windows下被input阻塞如何解决?

Windows版PyCharm中多进程子进程被input阻塞的问题

测试代码如下,当注释掉time.sleep(0.5)后,子进程的add函数无法启动,程序被input("blocking...")阻塞。但该代码在系统原生控制台运行正常。

import multiprocessing
import time


def add(counter):
    while 1:
        print(counter.value)
        counter.value += 1
        time.sleep(1)


if __name__ == '__main__':
    counter = multiprocessing.Value('i', 0)
    t = multiprocessing.Process(target=add, args=(counter,))
    t.start()
    #  time.sleep(0.5)
    input("blocking...")

问题原因

Windows系统中Python多进程采用Spawn启动机制,PyCharm默认开启的「在输出控制台中模拟终端」选项,会导致控制台输入输出资源被input抢占,子进程无法完成初始化并执行代码。

解决方法

  • 保留time.sleep(0.5):给子进程预留足够的初始化时间,避免被主进程的input阻塞
  • 修改PyCharm配置:打开运行/调试配置,取消勾选「在输出控制台中模拟终端」选项
  • 显式设置进程启动方式:在主进程开头添加multiprocessing.set_start_method('spawn'),确保进程启动逻辑符合Windows机制

内容的提问来源于stack exchange,提问作者Максим Федотов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:12:43