【发布时间】:2021-09-17 07:35:02
【问题描述】:
我一直在努力解决在 VSCode 中我想在调试控制台中评估多行 Python 代码而不必单独选择每一行并将其发送到调试控制台的问题。但是,当我一次选择多行并想在调试控制台中评估它们时,现有的缩进会被复制到调试控制台并在那里导致缩进错误。从那以后,我已经能够将问题缩小到我确定这主要发生在调试类方法时。下面给出了一个最小的示例。
class MyClass:
def __init__(self):
pass
def run(self):
a = 3
b = 4
c = a + b
MyClass().run()
如果我在a = 3 行设置断点,然后在调试期间到达该断点,然后我选择行a = 3 直到并包括c = a + b 并希望在调试控制台中评估所有3 行,这导致将行复制到调试控制台,如下所示:
a = 3
b = 4
c = a + b
这会导致以下错误:
Traceback (most recent call last):
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 419, in evaluate_expression
compiled = compile(_expression_to_evaluate(expression), '<string>', 'eval')
File "<string>", line 1
a = 3
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 1207, in internal_evaluate_expression_json
pydevd_vars.evaluate_expression(py_db, frame, expression, is_exec=True)
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 371, in new_func
return _run_with_unblock_threads(original_func, py_db, curr_thread, frame, expression, is_exec)
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 339, in _run_with_unblock_threads
return _run_with_interrupt_thread(original_func, py_db, curr_thread, frame, expression, is_exec)
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 310, in _run_with_interrupt_thread
return original_func(py_db, frame, expression, is_exec)
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 421, in evaluate_expression
Exec(_expression_to_evaluate(expression), updated_globals, frame.f_locals)
File "/home/lukas/.vscode/extensions/ms-python.python-2021.9.1230869389/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py", line 3, in Exec
exec(exp, global_vars, local_vars)
File "<string>", line 2
b = 4
^
IndentationError: unexpected indent
这是一个非常烦人的问题。任何解决方案将不胜感激。
【问题讨论】:
标签: python debugging visual-studio-code