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

如何自动在Spyder独立控制台运行多份Python脚本?

自动在Spyder独立控制台启动多ZMQ服务端脚本

实现方法

要一键启动多个带独立命名空间的服务端,不用手动点开Spyder控制台,你可以按以下步骤操作:

1. 改造服务端脚本,支持端口参数

把服务端代码改成能从命令行接收端口号的形式,方便批量启动:

import time
import zmq
import sys

# 读取命令行传入的端口号
if len(sys.argv) != 2:
    print("用法:python server.py 端口号")
    sys.exit(1)

port_number = int(sys.argv[1])

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind(f"tcp://*:{port_number}")

print(f"服务端启动,绑定端口 {port_number}")
for i in range(10):    
    message = socket.recv() 
    print(f"收到请求: {message}")
    time.sleep(0.001)
    # 统一编码后拼接消息
    reply = b"World" + f" from server# {port_number}".encode('utf-8')
    socket.send(reply)

2. 调整客户端代码(优化显示)

修改原客户端代码,让回复内容显示更清晰:

import zmq
import time

for request in range(10):
    port = 5555 + request
    context = zmq.Context()
    socket = context.socket(zmq.REQ)
    socket.connect(f"tcp://localhost:{port}")
    
    print(f"发送请求 {request} ...")
    socket.send(b"Hello")
    message = socket.recv()
    
    time.sleep(0.001)
    print(f"收到回复 {request} [ {message.decode('utf-8')} ]")

3. 编写一键启动脚本

在Spyder中新建start_servers.py,运行它就能自动创建多个独立控制台并启动对应服务端:

from spyder.api.widgets.main_widget import get_main_window

# 对应客户端的端口范围:5555到5564
ports = [5555 + i for i in range(10)]

main_window = get_main_window()

for port in ports:
    # 创建新的Spyder控制台窗口
    new_console = main_window.create_new_console()
    # 在新控制台中执行服务端代码,传入端口参数
    run_code = f"""
import sys
sys.argv = ['server.py', {port}]
%run server.py
"""
    new_console.execute(run_code)

注意事项

  • 三个脚本需放在同一目录下
  • 运行start_servers.py前,确保Spyder处于正常启动状态
  • 每个服务端都在独立的Spyder控制台中运行,拥有各自独立的命名空间,完全匹配需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:30:44