【问题标题】:How to allow VS Code to take input from users?如何让 VS Code 接受用户的输入?
【发布时间】:2018-06-04 21:47:22
【问题描述】:

我已安装 Visual Studio Code 1.23.1 并添加了扩展 - Python、Code Runner。

使用 Code Runner,现在我可以看到 Run Code 符号(三角形),在突出显示它时,我看到快捷键 Ctrl + Alt + N。但是当我尝试使用它来运行要求用户输入的代码时,我找不到提供输入的方法。当我尝试输入用户输入时,我收到错误消息“无法在只读编辑器中编辑”。我认为这是因为我缺少 Code Runner 的一些配置部分,例如设置 PATH 或其他一些工作区设置。

问题:请帮助我确定我需要进行哪些配置以及如何进行?

我在安装 Python 时确实选择了“将 Python 3.6 添加到 PATH”。我附上了截图供参考:

注意:即使现在我右键单击并为同一程序选择“在终端中运行 Python 文件”,我也可以很好地输入用户输入并获得预期的输出。

【问题讨论】:

标签: visual-studio-code python-3.6 vscode-code-runner


【解决方案1】:

这是另一个替代答案,我认为更准确
将以下设置添加到您的 vscode 用户设置文件中:

"code-runner.executorMap": {
    "python": "$pythonPath -u $fullFileName",
},

查看此参考以了解一些有用的变量: Variables Reference

【讨论】:

  • 伙伴 我在哪里可以获得所有这些 $variables 的列表?
  • 你拯救了我的一天!我在这里疯了!
  • 供后人参考:答案提供的链接中的那些变量无效(其中一些,但不是全部),支持的变量在代码运行器扩展说明中列出.
  • $pythonpath 在终端 VSCode 中无法识别。这是一个预定义的变量还是您将 python 路径放在这里的构造。
  • 有人可以在launch.json中使用的链接(Var Reference)中给出这些变量的起点和示例。
【解决方案2】:

您可以通过告诉代码运行器使用终端来提供输入。为此,有一个名为 code-runner.runInTerminal 的设置,默认设置为 false,您可以将其设置为 true。

如果您对终端使用 Windows 命令行(如 CMD 或 PowerShell),还应注意一件事。如果您的项目目录中有空格(例如 C:\Example Test),您将收到错误消息。要解决此问题,您需要在用户设置中的设置 code-runner.executorMapcode-runner.executorMapByFileExtension 下的目录路径变量(通常为 $dir$workspaceRoot)周围添加转义引号 (\")。

【讨论】:

  • 谢谢扎克。那行得通!我很久以前就失去了这个问题,没想到它会得到回答。我非常感谢您的回答。这个问题的电子邮件通知让我回到这里并找到了您的答案。
  • code-runner.runInTerminal 在哪里?插件文档描述了code-runner.whatever 的所有功能,但没有说明如何访问它。
【解决方案3】:

这里的主要问题是代码运行器扩展默认使用的输出窗口是只读的。如果您改用终端,您的程序将能够正常接受输入。

您可以通过将 code-runner.runInTerminal 设置设置为 true(默认为 false),将 Code Runner 配置为使用集成终端而不是输出窗口。在 settings.json 文件中应该是这样的:"code-runner.runInTerminal": true

如果您想改用 GUI,则设置为 true 后应如下所示。

如果您使用的是虚拟环境而不是系统 python 安装,您还需要配置第二个设置以使其与已安装的模块一起正常工作。 code-runner.executorMap 设置将配置代码运行器在您按下运行或使用 Ctrl + Alt + N 快捷键后实际执行的操作。默认情况下,它似乎只是调用添加到 PATH 的 python 解释器。

如果将 settings.json 文件中的设置更改为:

"code-runner.executorMap": {
    "python": "$pythonPath -u $fullFileName"
}

然后 Code Runner 将使用 pythonPath 变量中的任何值。您可以使用 Python 进行设置:从命令面板中选择解释器命令 (Ctrl + Shift + P)。这样,您可以在虚拟环境中选择解释器并使用它而不是默认附加到 PATH 的解释器。

上面的两个设置应该允许您 A) 在集成终端内输入输入和 B) 选择应该使用现有命令轻松执行的 python 解释器代码运行器。

【讨论】:

  • 使用 Ctrl+shift+p 或 f1 ,我没有得到“Python:..Select Interpreter”的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
相关资源
最近更新 更多