pycharm运行结果默认输出到run窗口,若出现在python console,是因为配置中勾选了“run with python console”,需在“edit configurations”中取消该选项并保存;同时可按alt+4唤出run窗口,确保其未被隐藏。

PyCharm运行程序后找不到控制台输出,大概率是因为输出被定向到了“Python Console”而非“Run”工具窗口——这是默认配置切换导致的视觉错位,不是代码或环境问题。
为什么输出跑去了Python Console而不是Run窗口
PyCharm默认勾选了Run with Python Console,一旦启用,所有print()、异常 traceback、甚至input()都会进Python Console窗口,而Run窗口保持空白或只显示启动日志(如PyDev console: starting...)。这个设置对交互式调试有用,但对普通脚本执行是干扰项。
- 右上角运行配置下拉菜单 → Edit Configurations…
- 左侧选中你的脚本配置(如
main.py) - 右侧取消勾选
Run with Python Console - 点击
OK保存,重新运行
Run窗口明明打开了却还是看不到输出
Run窗口可能被意外关闭或自动隐藏。PyCharm不会主动弹出它,尤其在首次运行或配置变更后。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 按快捷键
Alt+4(Windows/Linux)或Cmd+4(macOS)强制唤出Run工具窗口 - 如果底部状态栏没看到
Run标签,说明窗口被最小化或停靠在其他位置;可尝试View → Tool Windows → Run - 确认当前激活的是
Run标签页,而非Python Console、Terminal或Debug
输出内容存在但显示为乱码或空行
这通常不是路径或编码设置问题,而是缓冲区未刷新或终端编码不匹配所致,尤其在含中文、emoji或特殊字符时。
- 在
print()后加flush=True:例如print("结果", flush=True) - 运行配置中,在
Interpreter options里添加-u参数(启用无缓冲模式) - 避免用
sys.stdout.write()替代print(),后者自带换行和刷新逻辑 - 检查文件本身编码是否为
UTF-8(右下角状态栏查看,点击可切换)
pytest或单元测试里print不显示
PyCharm对pytest做了默认捕获,print()会被拦截,除非显式放开。
- 进入
Settings → Tools → Python Console,确保Use IPython if available未干扰 - 更关键的是:
Settings → Tools → Python Tests → pytest,把Capture output设为Print to console - 或者直接在命令行运行
pytest -s(-s禁用输出捕获)验证是否为PyCharm特有问题
真正容易被忽略的是:PyCharm的Run窗口和Python Console是两个完全独立的进程容器,它们不共享stdout/stderr,也不自动同步。哪怕你只是多点了一次右键“Run in Python Console”,后续所有Run操作都会沿用上次配置——这种隐式状态切换,比代码bug更难察觉。










