防止OS X用Python进入睡眠状态?

时间:2013-01-08 13:25:43

标签: python macos sleep

有没有办法阻止运行OS X的计算机从Python脚本中进入睡眠状态?

4 个答案:

答案 0 :(得分:7)

您可以调用 caffeinate 命令。

subprocess.Popen('caffeinate')

这就是我使用它的方式:

import sys
import subprocess

if 'darwin' in sys.platform:
    print('Running \'caffeinate\' on MacOSX to prevent the system from sleeping')
    subprocess.Popen('caffeinate')

答案 1 :(得分:2)

从OS 10.6开始,您必须使用Cocoa中提供的IOPMAssertion函数系列。这很好地解释了there

然后,您将不得不从Python调用它。我不确定Python中是否已经存在针对Cocoa的特定绑定,但您可以调用Objective-C函数。它的描述非常好here

答案 2 :(得分:1)

现在,Anaconda附带了一个Python实用程序来引发所需的断言:https://github.com/minrk/appnope

答案 3 :(得分:0)

您还可以在外部终端窗口中运行caffeinate并将其保持打开状态,以实现OP所需的功能。

  1. 打开终端

  2. 类型caffeinate

  3. Enter

完成此操作后,只要让终端保持运行状态,您的Mac就会保持清醒状态。

您可以最小化或隐藏它,直到使用键盘快捷键Ctrl + C中断命令,Mac才会进入睡眠状态。

source