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

为何代码在Jupyter Notebook正常运行,.py文件却报缩进错误?

解决Jupyter Notebook转.py文件的缩进错误问题
  • 直接从Notebook导出标准.py文件:不要手动复制粘贴代码,用Jupyter自带的导出功能处理——在Notebook界面点击「File」→「Download as」→「Python (.py)」,导出的文件会自动统一缩进格式,避免手动复制引入的隐形格式问题。
  • 用编辑器强制统一缩进风格:如果已经有出错的.py文件,打开后全选代码,用编辑器的缩进转换功能(比如VS Code按Ctrl+Shift+P,输入「Convert Indentation to Spaces/Tabs」,选择统一用4空格或1制表符),强制将所有缩进转换成同一格式。
  • 检测隐形异常空白字符:有些非标准空白字符(比如全角空格)肉眼难分辨,可通过Python脚本排查:
    import sys
    with open("你的报错文件.py", "r") as f:
        for line_num, line in enumerate(f, 1):
            for char_pos, char in enumerate(line, 1):
                if char in (" ", "\t", "\n"):
                    char_code = ord(char)
                    if char_code not in (32, 9, 10):
                        print(f"第{line_num}行第{char_pos}列存在异常空白字符,ASCII码:{char_code}")
    
    运行脚本找到异常字符后,替换成正常空格或制表符即可。
  • 对比缩进字符的ASCII码:针对报错行和其上方的正常行,提取缩进部分打印ASCII码,确认是否一致:
    # 替换成你代码里的缩进内容
    error_line_indent = "    报错行的缩进部分"
    normal_line_indent = "    上一行的缩进部分"
    print([ord(c) for c in error_line_indent])
    print([ord(c) for c in normal_line_indent])
    
    如果输出的列表不一致,说明两行缩进用了不同字符,统一成相同格式即可。

内容的提问来源于stack exchange,提问作者Ricardo de Abreu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:54:55