【问题标题】:matplotlib figure won't show when Python is run from VS Code integrated terminal当从 VS Code 集成终端运行 Python 时,matplotlib 图形不会显示
【发布时间】:2020-08-28 15:10:28
【问题描述】:

我在使用 VS Code 调试 Python 文件时遇到问题。似乎自从上次更新 VS Code matplotlib 数字在调用plt.show() 后停止显示。没有报告错误,脚本继续执行,就好像调用成功一样,所以我不确定是什么原因。

最初我认为这可能与后端有关,因此我尝试在具有不同 matplotlib.plot 后端和 Python 版本的各种 Python 环境中运行,但没有成功。

我唯一的想法是 VS Code 设置可能会以某种方式覆盖后端或环境,并可能导致这种行为?

【问题讨论】:

  • 如果您在 VS Code 之外运行脚本,问题会消失吗?如果没有,请在您的问题中附上simple example
  • 是的,这个问题在使用 VS Code 时特别​​存在,其他地方都没有。除了字面上通常会产生图表的任何东西外,我没有什么可以真正提供的例子。甚至像plt.plot([1, 2], [3, 4]) 后跟plt.show() 一样简单

标签: python matplotlib visual-studio-code vscode-settings


【解决方案1】:

我在 Anaconda 的虚拟环境中遇到了同样的问题。我创建了一个简单的脚本(如下),当在 Ubuntu 的终端上运行时,情节出现了,但是在 VSCode 的终端上,情节没有打开并且脚本完成了。

import matplotlib.pyplot as plt
plt.plot([1,2,3], [10, 20, 30])
plt.show()

我通过打开 VSCode 设置 (JSON) 并将“terminal.integrated.inheritEnv”更改为 true 来解决。我猜你应该添加这个选项,如果它不存在的话。

在其他答案上找到了解决方案:https://stackoverflow.com/a/63368392/2014507(归功于Jiang

【讨论】:

  • 嗯,我认为这一定是一个不同的问题,因为 terminal.integrated.inheritEnv 对我来说已经设置为 True。
【解决方案2】:

设置

"terminal.integrated.inheritEnv": true,

在您的用户设置中

#and# 然后别忘了放

plt.show()

在你的 python 文件的末尾。如果没有 plt.show(),您的图像将不会显示。

【讨论】:

    【解决方案3】:

    我已经安装了 conda 环境。当 vs 代码启动时,它会提示将“terminal.integrated.inheritEnv”设置为 false。在那种情况下,当我从 vs 代码终端运行代码时,我看不到绘图。正如这里https://stackoverflow.com/a/65086012/10534028 解释的那样,使它成为现实可以解决问题。 将其复制到“@feature:terminal terminal.integrated.inheritEnv”设置搜索区域并选中该框。

    【讨论】:

      【解决方案4】:

      在 VSCode 中从终端访问文件时,保存绘图,然后它将可见 plt.savefig('file_name.png')

      【讨论】:

      • 谢谢,我知道绘图图像可以保存,但这不是我要问的问题,在处理应通过plt.show() 显示图形的情况时没有用命令。
      猜你喜欢
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-18
      • 2016-07-16
      • 1970-01-01
      • 2020-11-05
      • 2021-05-26
      • 1970-01-01
      相关资源
      最近更新 更多