首页 > 解决方案 > 用 os.getpid() 加咖啡因 pid

问题描述

我是初学者,我希望我的 macOS 在当前的 python 进程终止之前不要休眠。这是我的 python 代码,我使用了咖啡因

import os
import subprocess
t=os.getpid()
subprocess.run(['caffeinate','-u','-w',t])
print("something...")

但它得到了错误

Traceback (most recent call last):
  File "/Users/davidkyan/Desktop/demo.py", line 4, in <module>
    subprocess.run(['caffeinate','-u','-w',t])
  File "/opt/anaconda3/lib/python3.7/subprocess.py", line 488, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/opt/anaconda3/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/opt/anaconda3/lib/python3.7/subprocess.py", line 1482, in _execute_child
    restore_signals, start_new_session, preexec_fn)
TypeError: expected str, bytes or os.PathLike object, not int

请帮助我出了什么问题,它只是一个简单的代码。

标签: pythonmacossubprocesspython-os

解决方案


错误是由t哪个引起的int

尝试更改代码如下 -

import os
import subprocess
t=os.getpid()
subprocess.run(['caffeinate','-u','-w',str(t)])
print("something...")


推荐阅读