8

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

4

4 回答 4

10

您可以使用内置的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')
于 2015-04-13T11:04:40.833 回答
3

从 OS 10.6 开始,您必须使用 Cocoa 中可用的 IOPMAssertion 系列函数。这在那儿得到了很好的解释。

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

于 2013-01-08T13:38:05.487 回答
2

您还可以caffeinate在外部终端窗口中运行并保持打开状态以实现 OP 想要的。

  1. 打开一个终端

  2. 类型caffeinate

  3. Enter

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

您可以最小化或隐藏它,并且在您使用键盘快捷键 Ctrl+C 中断命令之前,您的 Mac 不会进入睡眠状态。

来源

于 2020-12-10T03:30:32.727 回答
0

有一个 Python 实用程序说明了如何在 Python 中直接提出所需的断言:https ://github.com/minrk/appnope

于 2018-11-19T02:28:52.810 回答