1

我曾经2to3转换 python 模块的文件夹。一切都很顺利,但是当我去运行其中一些时,它给了我一个关于空格和制表符的错误。我的理论:当2to3更改一行时,它使用制表符而不是空格,这与其他未更改的行不同。我想知道是否有办法改变这一点。

错误是:

TabError: inconsistent use of tabs and spaces in indentation

代码片段很难显示,因为显示的选项卡相当于 4 个空格,但我检查并发生了这种情况。

4

1 回答 1

6

2to3不应该用制表符替换空格,所以我猜你会得到一个TabError,因为那些已经存在于代码和 python 3 中的制表符不允许在单个文件中混合制表符和空格,而这在 python 2 中很好。

这可以使用reindent.pypython 附带的脚本修复,可以在 linux 系统下找到,/usr/lib/python2.7/Tools/scripts/reindent.py也可以选择使用 pip by 安装pip install reindent。那么用空格替换制表符的命令是:

reindent.py file.py
于 2015-11-25T22:56:27.080 回答