我正在尝试运行我在Python3中使用Python2程序编写的程序。我正在尝试对语法进行任何必要的更改,以使其正常工作,但是我陷入了下面的代码行中。
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
此引发异常的语法为removed from python 3
您需要将异常代码更改为类似的内容:
raise AttributeError(fn + ' is not a search function in search.py.')
此问题提供的答案更加详细-Manually raising (throwing) an exception in Python