模块在IDLE中不起作用

时间:2018-02-17 23:45:46

标签: python python-3.x

过去一小时这让我很烦恼。我的python脚本不会运行;但是,如果我选择'检查模块',输入代码,并运行相同的工作。这是一个非常简单的脚本:

import pyscreenshot as getImage

im = getImage.grab(bbox=(1300,800,1500,850))
im.save("screen.png")

2 个答案:

答案 0 :(得分:1)

尝试通过终端运行,它将工作。

虽然我不知道为什么会发生这种情况(可能会问那些维护它的人)我可以告诉你这是因为在运行时创建了一些与终端相关的功能。

IDLE实际上并不是一个终端,所以它不能像终端那样运行(尽管它输出相同的内容,但它不是终端)。例如,在IDLE下运行os.get_terminal_size()将无法工作终端。 PIL中还有一些功能以相同的方式执行。

无论如何this post显示了一个非常相似的代码,并且提到它在IDLE下无法工作。

答案 1 :(得分:0)

您需要设置childprocess=False,因为IDLE在多处理方面存在问题。 IDLE在一个单独的进程中运行用户代码,因此使用pyscreenshot IDLE挂起并且看起来该模块不起作用。您可以通过this了解更多信息。

选项是通过设置childprocess=False来关闭多处理。

尝试:

import pyscreenshot as getImage 
im = getImage.grab(bbox=(1300,800,1500,850), childprocess=False) 
im.save("screen.png")
相关问题