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

Spyder 5.5.4(Conda3.11.7)中代码执行无输出问题求助

问题描述

在Spyder 5.5.4(基于Conda 3.11.7环境)中运行指定代码时,从标注的print("No Output")位置开始无任何输出;但在控制台单独执行该print语句可正常显示结果,重启内核后问题仍存在。

解决方案

1. 排查代码阻塞问题

mar.run('p2p', r=r)或后续绘图代码可能陷入阻塞,导致后续代码无法执行:

  • 先注释掉mar.plot()和ax = mar.plot_method('p2p')两行,重新运行脚本,检查print("No Output")是否正常输出。如果能输出,说明是绘图代码导致的阻塞。
  • 若确认是绘图问题,删除开头重复的%matplotlib qt和%matplotlib inline,只保留%matplotlib inline;或者在Spyder设置里把IPython控制台的图形后端改成"Inline"(路径:工具>偏好设置>IPython控制台>图形>后端)。

2. 显式打印变量/表达式

Spyder脚本模式下,单独写变量名(比如bids、transactions.get_df())不会自动输出结果,必须显式打印:

  • 修改代码为:
    print(bids)  # 替代原代码中单独的bids
    print(transactions.get_df())  # 替代原代码中单独的transactions.get_df()
    print(extras)  # 替代原代码中单独的extras
    print(stats['percentage_traded'])  # 替代原代码中单独的stats['percentage_traded']
    
  • 如果想要更美观的DataFrame输出,可以先导入from IPython.display import display,然后用display(bids)替代print(bids)。

3. 捕获mar.run的静默异常

mar.run('p2p', r=r)可能抛出了未被捕获的异常,导致代码中断:

  • 给mar.run代码块加上异常捕获:
    try:
        transactions, extras = mar.run('p2p', r=r)
        stats = mar.statistics()
        print("No Output")
    except Exception as e:
        print(f"执行出错: {e}")
    
  • 这样能直接打印出run方法中可能出现的错误,定位问题根源。

4. 解决输出缓冲问题

Spyder的输出缓冲可能导致内容无法及时显示:

  • 在print语句后强制刷新缓冲:
    print("No Output", flush=True)
    
  • 或者在Spyder设置里关闭输出缓冲(路径:工具>偏好设置>IPython控制台>高级>取消勾选"缓冲输出")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:02:08