Process finished with exit code 0 表示程序成功执行无错误,但未显示预期输出,最常见原因是缺少 print() 语句或主逻辑未被执行,如 if name == '__main__' 块被跳过、函数未调用、运行配置指向错误文件等。

Process finished with exit code 0 表示 Python 进程已正常退出,不是报错,而是操作系统收到的“成功完成”信号。但你没看到预期输出(比如 print() 内容),说明程序逻辑或运行环境出了问题——它确实跑完了,只是没干你想让它干的事。
为什么 print() 没显示,却显示 exit code 0?
最常见原因:程序根本没执行到 print() 那一行。典型场景包括:
-
if __name__ == '__main__':块被缩进错误或条件不满足,导致主逻辑跳过 - 代码里有未触发的
return、sys.exit(0)或提前break - 脚本是纯定义(如只写了函数/类),没调用任何东西,自然什么也不输出
- PyCharm 当前运行配置指向了错误文件,或根本没运行你编辑的那个
.py
检查方法:在文件最底部加一行 print("reached end"),再运行。如果这行也不出现,说明连最后一行都没走到。
PyCharm 的 Run Configuration 是否指向正确脚本?
右键文件 → Run 'xxx' 看起来没问题,但 PyCharm 实际可能还在运行旧配置。尤其当你复制粘贴代码、新建文件后容易出错。
务必手动检查:
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 点击右上角当前运行配置名(如
Unnamed)→ Edit Configurations… - 确认
Script path是你正在编辑的文件的**绝对路径**(不是相对路径,更不能是空或乱码) - 如果路径含中文、空格或特殊字符(如
C:\Users\风飘 小谭谭\Desktop\爬虫.py),PyCharm 有时会解析失败,建议移到英文路径下测试
PyCharm 默认用 pytest 模式运行普通脚本?
PyCharm 有时会把普通 .py 文件当成测试用例处理——尤其当文件名含 test_ 或 _test,或项目设置里启用了 Autodetect 测试框架。
后果:它调用 pytest 执行,而 pytest 不会执行 if __name__ == '__main__': 下的代码,也不会显示普通 print()(除非加 -s 参数)。
解决办法:
- 进入
File → Settings → Tools → Python Integrated Tools - 将
Default test runner改为None(或明确选unittest,但别留Autodetect) - 重启 PyCharm(此步不可跳过)
解释器或环境问题导致脚本静默退出
Exit code 0 只代表 Python 解释器启动并退出了,不代表你的代码被加载执行。以下情况会导致“启动即退”:
- 配置的解释器路径无效(比如虚拟环境被删,但 PyCharm 还记着旧路径)→ 检查
File → Settings → Project → Python Interpreter,看右上角是否显示Interpreter not found - 脚本开头有语法错误(如
import失败),但被 IDE 吞掉没报红 → 尝试在终端用python your_script.py直接运行,看是否有ImportError或SyntaxError - 使用了某些 C 扩展包(如
h5py、PyQt5)与当前 Python 版本/架构不兼容 → 出现exit code -1073741819 (0xC0000005)等异常退出码,但有时也会静默失败
真正麻烦的不是 exit code 0,而是它掩盖了“代码压根没跑”的事实。盯住运行配置、解释器状态和最简单的 print("hello") 是否出现,比猜原因快得多。

















