【问题标题】:Python script in Colab keeps throwing error message: IndentationError: unindent does not match any outer indentation levelColab 中的 Python 脚本不断抛出错误消息:IndentationError: unindent does not match any external indentation level
【发布时间】:2021-05-16 23:15:40
【问题描述】:

我目前正在使用 Google Colab 以利用其免费 GPU。我试图修改从 machinelearningmaster.com 复制和粘贴的代码。但是,每当我尝试添加新的代码行时,例如“print(”some words"),都会出现缩进错误。

我尝试在打印调用之前添加制表符或空格,但我仍然收到错误消息。例如: space,space,print("一些词") tab, tab ,print("一些词")

我也检查了colab编辑器的设置,目前缩进宽度设置为两个空格。

前三行是原代码的一部分,打印语句是 我的补充。我直接从 colab 编辑器复制并粘贴了它。在 Colab 中,所有四行都是对齐的。正如你在这里看到的,只有前三行是对齐的。我不知道发生了什么事。

                img_path = images_dir + filename
                ann_path = annotations_dir + image_id + '.xml'
                count=count+1
                            print("this is count: ", count)

我希望这会打印 count 的值,但我收到一条错误消息告诉我: IndentationError: unindent 不匹配任何外部缩进级别

【问题讨论】:

  • 这是精确的缩进吗?为什么print 缩进了这么远?
  • 您正在混合使用空格和制表符进行缩进。只能说“不要那样做”。
  • @Carcigenicate 我直接从 colab 编辑器复制并粘贴了这个示例。我将它保留原样,以便每个人都可以看到它在放入另一个编辑器时的样子。
  • @jasonharper,在实际代码中,每件事都是对齐的。我试图删除打印语句之前的所有空格并用制表符替换,当这不起作用时,我再次使用空格进行了操作。在这两种情况下,我都会遇到相同的错误。
  • @Rice Man 的解决方案非常完美,您可以在 Sublime 文本本身中做到这一点。 Control/ Cmd + F -> *按 TAB -> 查找所有 -> 相应地应用 2 或 4 个空格

标签: python-3.x indentation google-colaboratory


【解决方案1】:

好的,经过大量的搜索和挫折,我知道出了什么问题,但更好的是,有一个解决方案。

Google Collaborator (Colab) 编辑器似乎无法为选项卡“\t”与空格(空格键条目)设置它。从单元格的设置选项卡中,您可以将选项卡的宽度设置为 2 到 4,但这些将被解释为 2 到 4 个空格键条目。通常,这不是问题。但是,如果您像我一样想从网络上测试代码,或者懒惰而只是从编辑器中复制粘贴,就会出现问题。

这是我修复它的方法。在将复制的代码粘贴到 Colab 之前,先将其放入 notepad++。转到查看>显示符号>显示所有字符,单击它,您现在应该能够看到代码中的所有字符。找到一个选项卡,它看起来像一个指向右侧的箭头-->,右键单击并复制它。打开搜索>查找,打开替换选项卡。根据您的记事本++ 版本,您复制的选项卡将自动输入,并且替换已设置为四个空格。点击“全部替换”。这将自动将所有制表符替换为等效空格。将代码从 notepad++ 复制回 Colab。现在不会再有冲突了。

【讨论】:

  • 我真的希望 google colab 能解决这个问题。这真是一种血腥的痛苦。
  • @PyWalker2797,真的!他们竭尽全力让我们习惯使用它,而且它是专门为数据科学而设计的。目前主要由 Python 恕我直言,这个特殊问题纯粹是 Pythonic。
【解决方案2】:

我认为使用简单的查找和替换工具就可以了。我最近在 Colab 中也遇到了这个错误,我通过了@Rice Man 解决方案。唯一的区别是我使用了 Libre Office writer 而不是 Notepad++。我还发现 this tool 很有帮助。我不熟练使用 Colab,但这个解决方案对我有用。

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 2016-07-09
    • 2017-02-24
    • 2013-05-14
    • 2020-09-18
    • 2011-05-10
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多