【问题标题】:Running a loop/multiple lines in vs code python debug console在 vs code python 调试控制台中运行循环/多行
【发布时间】: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


【解决方案1】:

你有两个选择:

  1. 在新的编辑器窗口中编写命令,然后只需将代码复制并粘贴到调试控制台中,然后按Enter
  2. 直接在调试控制台中编写命令。当您想输入新行时,请按Shift+Enter。命令完成后,使用Enter执行

【讨论】:

  • 啊,好人Shift+Enter。现在我觉得很傻。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 2021-01-19
  • 2021-04-13
  • 2011-06-30
  • 1970-01-01
相关资源
最近更新 更多