18

我最近开始使用 sublimetext 2,但是我今天注意到该plt.show()函数在 sublimetext 中运行时似乎不起作用。

例如,如果我创建以下脚本:

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

使用 IDLE 运行它会生成一个绘图,但是使用 sublimetext 不会生成任何输出。它只是一直在“思考”,直到我结束 python.exe 进程,然后输出 [Finished]。

我是否误解了 sublimetext 的使用方式?

谢谢。

4

5 回答 5

15

更合适的方法是在默认的 Python 构建系统文件中添加一行:

"shell": true

或者使用以下命令制作额外的 Python 构建系统:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}
于 2013-03-17T23:06:52.687 回答
14

我的猜测是 Sublime Text 2 在它自己的环境中启动你的代码,并且只捕获和显示控制台输出。使用 GUI 时也存在同样的问题,例如 wxPython。

另一种解决方法是打开命令提示符并手动启动它(python file.py)。

编辑: 这里声明“在 Windows 下,GUI 被抑制”。

编辑2: 这里它列出了一种修复它的方法,就在页面的底部。

于 2012-05-31T11:23:17.130 回答
11

我按照上面的建议尝试了theta的答案。它工作正常。如果控制台像直接从文件资源管理器中运行 python 文件一样立即打开和关闭,只需在末尾添加以下行:

matplotlib.pyplot.show('hold')

这是我第一次在这里回答。对不起,如果我没有遵守答案格式。

于 2015-09-03T05:07:46.783 回答
10

sublime text 3中的注释(安装了anaconda包)

如 theta 所说,您需要通过以下方式添加自定义构建系统:

首先在其中添加一个名为 python 的文件夹\path\to\Sublime Text Build XXXX\Data\Packages

然后将一个名为的文件python.sublime-build放入该文件夹中。

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}

并记得plt.show()像 Roald 所说的那样添加。

plt.imshow(image)
plt.show()

演示:

在此处输入图像描述

于 2017-12-24T12:57:04.923 回答
2

我在 Ubuntu 下也有类似的问题。我试图绘制pandas DataFrame这样的图:

df = pandas.DataFrame([*range(5)])
df.plot()

但是剧情没有显示。事实证明你需要这样做,正如这里plt.show()所讨论的。

于 2017-10-15T20:15:14.407 回答