【发布时间】:2021-01-05 23:39:41
【问题描述】:
如何在 VS Code 的 python 调试控制台中运行一个简单的循环?当我尝试输入以下内容时:
for el in dataset:
它给了我下面的错误。我似乎可以输入变量名,但不能像在普通 python REPL 中那样输入多行命令。
Traceback (most recent call last):
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 416, in evaluate_expression
compiled = compile(_expression_to_evaluate(expression), '<string>', 'eval')
File "<string>", line 1
for el in dataset:
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 969, in internal_evaluate_expression_json
pydevd_vars.evaluate_expression(py_db, frame, expression, is_exec=True)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 368, in new_func
return _run_with_unblock_threads(original_func, py_db, curr_thread, frame, expression, is_exec)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 336, in _run_with_unblock_threads
return _run_with_interrupt_thread(original_func, py_db, curr_thread, frame, expression, is_exec)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 307, in _run_with_interrupt_thread
return original_func(py_db, frame, expression, is_exec)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py", line 418, in evaluate_expression
Exec(_expression_to_evaluate(expression), updated_globals, frame.f_locals)
File "/home/tensorflow/.local/lib/python3.6/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py", line 3, in Exec
exec(exp, global_vars, local_vars)
File "<string>", line 1
for el in dataset:
^
SyntaxError: unexpected EOF while parsing
【问题讨论】:
-
如果表达式很简单,我通常会评估列表理解。对于更复杂的表达式,我不确定 VSC 提供什么,但 PyCharm 提供了一种在调试期间评估更复杂表达式的特定方法(例如,使用循环)。
-
您提供的回溯与示例代码不匹配。在回溯中,
for el in dataset末尾没有冒号:。 -
@MattDMo,谢谢,是的,我自己也注意到了。应该是固定的。
-
@cicolus,列表推导似乎工作得更好一些。谢谢。
-
只是好奇...你能在一个 VS 代码窗口(我不是 VS 代码用户)中运行 REPL 来解决这个问题吗?
标签: python visual-studio-code vscode-debugger