Python 2.7 reindent.py-在命令行中不起作用

Python 2.7 reindent.py-在命令行中不起作用,python-2.7,indentation,Python 2.7,Indentation,我在Python中遇到缩进问题。所以我下载了reindent.py来纠正缩进错误 我使用以下命令安装了reindent.py-: pip install reindent reindent -n test1.py 但是我从命令行运行它会显示以下错误-: Traceback (most recent call last): File "/usr/local/bin/reindent", line 3, in <module> main() File "/usr/lo

我在Python中遇到缩进问题。所以我下载了
reindent.py
来纠正缩进错误

我使用以下命令安装了reindent.py-:

pip install reindent
reindent -n test1.py
但是我从命令行运行它会显示以下错误-:

Traceback (most recent call last):
  File "/usr/local/bin/reindent", line 3, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 92, in main
    check(arg)
  File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 118, in check
    if r.run():
  File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 177, in run
    tokenize.tokenize(self.getline, self.tokeneater)
  File "/usr/lib/python2.7/tokenize.py", line 170, in tokenize
    tokenize_loop(readline, tokeneater)
  File "/usr/lib/python2.7/tokenize.py", line 176, in tokenize_loop
    for token_info in generate_tokens(readline):
  File "/usr/lib/python2.7/tokenize.py", line 357, in generate_tokens
    ("<tokenize>", lnum, pos, line))
  File "<tokenize>", line 127
    for w in transcript:
    ^
IndentationError: unindent does not match any outer indentation level

我认为
reindent
应该纠正错误,而不是告诉我错误发生的位置。

reindent.py
将选项卡更改为空格,并可以使不规则缩进成为统一的4个空格。它不会试图捕获或修复缩进错误

考虑以下代码,其中有一个缩进错误:

def foo():
    print("Let's go")
  for i in range(2):   <-- IndentationError
      print('Peay')

是修复代码的有效方法
reindent.py
(或它所使用的
tokenize
模块 依赖于)不尝试猜测编码者想要哪一个。因此
缩进错误
是至少有时需要人工干预的
语法错误

要修复的干预。

test1.py中存在缩进错误。修复缩进错误,然后
reindent.py
将起作用。@unutbu不是reindent.py假定为我修复缩进错误?有没有办法自动修复缩进错误?
% reindent.py script.py
Traceback (most recent call last):
  ...          
  File "/usr/lib/python2.7/tokenize.py", line 170, in tokenize
    tokenize_loop(readline, tokeneater)
  File "/usr/lib/python2.7/tokenize.py", line 176, in tokenize_loop
    for token_info in generate_tokens(readline):
  File "/usr/lib/python2.7/tokenize.py", line 357, in generate_tokens
    ("<tokenize>", lnum, pos, line))
  File "<tokenize>", line 9
    for i in range(2):
    ^
IndentationError: unindent does not match any outer indentation level
def foo():
    print("Let's go")
    for i in range(2):
        print('Peay')
def foo():
    print("Let's go")
for i in range(2):
    print('Peay')