Ошибка при попытке запустить reindent.py в строке 71 - PullRequest
0 голосов
/ 12 марта 2020

при попытке запустить команду reindent из командной строки windows 10 я получаю следующую ошибку:

C:\Users\ianpo\renpy-7.3.5-sdk\projects\test\game>python -m reindent script.rpy
Traceback (most recent call last):
  File "C:\Users\ianpo\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 184, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "C:\Users\ianpo\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 154, in _get_module_details
    code = loader.get_code(mod_name)
  File "<frozen importlib._bootstrap_external>", line 916, in get_code
  File "<frozen importlib._bootstrap_external>", line 846, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\ianpo\AppData\Local\Programs\Python\Python38\lib\site-packages\reindent.py", line 71
    except getopt.error, msg:
                       ^
SyntaxError: invalid syntax

Любые подсказки относительно того, что здесь происходит, будут очень благодарны. Я очень плохо знаком с Python и Windows, поэтому, пожалуйста, отвечайте, как будто я дурачок. Я попытался переустановить с помощью pip и убедиться, что я добавил флаг параметров. Седьмая строка вниз вызывает ошибку.

def main():
    import getopt
    global verbose, recurse, dryrun, makebackup
    try:
        opts, args = getopt.getopt(sys.argv[1:], "drnvh",
                        ["dryrun", "recurse", "nobackup", "verbose", "help"])
    except getopt.error, msg:
        usage(msg)
        return
    for o, a in opts:
        if o in ('-d', '--dryrun'):
            dryrun += 1
        elif o in ('-r', '--recurse'):
            recurse += 1
        elif o in ('-n', '--nobackup'):
            makebackup = False
        elif o in ('-v', '--verbose'):
            verbose += 1
        elif o in ('-h', '--help'):
            usage()
            return
    if not args:
        r = Reindenter(sys.stdin)
        r.run()
        r.write(sys.stdout)
        return
    for arg in args:
        check(arg)

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Таким образом, проблема была связана с тем, что pip устанавливал устаревшую версию reindent, несовместимую с текущей python. Если у кого-то еще возникла такая же проблема, go здесь для последней версии файла.

0 голосов
/ 12 марта 2020

Пожалуйста, уточните вашу проблему с кодом, но похоже, что у вас есть ошибка с вашим случаем исключения:

 try:
   doSomething
 except getopt.error, msg:
   raise someError(debug)

Неправильное выражение исключение, должно быть что-то вроде этого:

 except getopt as e:
   raise someError(msg)

Если getopt - это класс Exception, который вы создали где-то в этом файле, то вам придется сделать это таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...