21

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

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

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

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

执行错误 执行错误

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

4

3 回答 3

48

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

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

查看此参考以获取一些有用的变量: 变量参考

于 2018-11-21T10:21:12.373 回答
25

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

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

于 2018-08-05T21:10:19.523 回答
13

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

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

如果您想改用 GUI,则设置为 true 后应如下所示。 使用 gui 界面运行在终端设置

如果您使用的是虚拟环境而不是系统 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 解释器代码运行器。

于 2019-08-22T01:29:34.890 回答