Как запустить программу python2 в python3? - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь запустить программу, написанную мной, используя Python2 программу на Python3. Я пытаюсь внести необходимые изменения в синтаксис, чтобы он работал, но я застрял в следующей строке кода.

raise AttributeError, fn + ' is not a search function in search.py.'

Он отлично работает, когда я запускаю его в Python2, но я получаю следующую синтаксическую ошибку при попытке запустить его в Python3.

Traceback (most recent call last):
  File "autograder.py", line 345, in <module>
    moduleDict[moduleName] = loadModuleFile(moduleName, os.path.join(options.codeRoot, cp))
  File "autograder.py", line 134, in loadModuleFile
    return imp.load_module(moduleName, f, "%s.py" % moduleName, (".py", "r", imp.PY_SOURCE))
  File "/usr/lib/python3.6/imp.py", line 235, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.6/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 684, in _load
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 674, in exec_module
  File "<frozen importlib._bootstrap_external>", line 781, in get_code
  File "<frozen importlib._bootstrap_external>", line 741, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "searchAgents.py", line 71
    raise AttributeError, fn + ' is not a search function in search.py.'
                        ^
SyntaxError: invalid syntax

1 Ответ

2 голосов
/ 05 февраля 2020

Этот синтаксис для возбуждения исключений был удален из python 3

Вам необходимо изменить код исключения на что-то вроде:

raise AttributeError(fn + ' is not a search function in search.py.')

Ответ, предоставленный в этом вопросе, более детально описан - Вызов (исключение) вручную в Python

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