缩进不一致 [PYTHON] TabError [不同的编辑器]

Indentation inconsistency [PYTHON] TabError [Different Editors]

我在 Windows 的 Idle 上写了几个 python 程序。后来我在 Ubuntu 14.04 上转向 gedit。两者都有 python3 工作。

我在 gedit 中编辑了这些文件。

当我运行这些文件时,我得到

'TabError: inconsistent use of tabs and spaces in indentation' 

错误,即使 VISUALLY,也没有不一致的制表符或缩进完成。

[看起来,在 Windows' 空闲时,制表符是 4 个空格宽 ,而在 gedit 中,制表符当前是 8 个空格宽。所以,我不能直接使用 TAB。]

如何解决这个错误和问题? 有什么解决办法吗?

标准答案是配置您的编辑器(所有编辑器),使您只有空格,而且总是有四个。对于已经存在的代码,您必须将所有制表符转换为空格(sed 可以快速完成,就像您使用的任何 editor/IDE 一样)。 大多数编辑器在按 TAB 键时应该能够插入空格。

参考pep8

Spaces are the preferred indentation method.

Tabs should be used solely to remain consistent with code that is already indented with tabs.

Python 3 disallows mixing the use of tabs and spaces for indentation.

Python 2 code indented with a mixture of tabs and spaces should be converted to using spaces exclusively.

When invoking the Python 2 command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended!

另请参阅,this 检查制表符和空格的混合情况。

使用 Sublime Text 编辑器的人, 这样检查。

  1. Select所有代码。
  2. Select 工具。
  3. 点击'Install Package Control'。
  4. 然后单击命令面板。
  5. 搜索 'Convert to Tabs' 并 select 它。
  6. 完成。所有空格都将转换为制表符。