Python script in Colab keeps throwing error message: IndentationError: unindent does not match any outer indentation level

Python script in Colab keeps throwing error message: IndentationError: unindent does not match any outer indentation level

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

我尝试在打印调用之前添加制表符或 spaces,但我仍然收到错误消息。例如: space,space,打印("some words") 制表符,制表符,打印("some words")

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

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

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

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

好的,经过大量搜索和挫折,我知道出了什么问题,但更好的是,找到了解决它的方法。

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

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

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