过去一小时这让我很烦恼。我的python脚本不会运行;但是,如果我选择'检查模块',输入代码,并运行相同的工作。这是一个非常简单的脚本:
import pyscreenshot as getImage
im = getImage.grab(bbox=(1300,800,1500,850))
im.save("screen.png")
答案 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")