首页 > 解决方案 > 包含 Popen 的模块函数被拒绝但在模块函数之外工作

问题描述

敲我的头。有很多关于 popen permission denied 错误的帖子,但似乎没有一个对我有帮助。任何正确方向的提示或指示都会很棒!谢谢你们 : )

这是在树莓派上,python 3.7.3

以下按预期工作:sudo python3 test.py子进程打开没有问题。

#Filename "test.py"
import subprocess
proc = subprocess.Popen("./my_compiled_c_file")
print(proc.pid)
exit()

如果我改为将修改后的 test.py 作为模块导入,则以下命令会在“./my_compiled_c_file”上获得权限被拒绝错误:sudo python3 main_test.py

#Filename "/subfolder/test.py"
import subprocess
def proc_open():
    proc = subprocess.Popen("./my_compiled_c_file")
    return proc.pid
#Filename "main_test.py"
import subfolder.test as TEST

if __name__ = '__main__':
    pid = TEST.proc_open()
    print(pid)
    exit()

我确定我是个傻子,我只是不知道有多傻...

标签: pythonpython-3.xsubprocess

解决方案


太傻了,以前的帖子应该有帮助......

proc = subprocess.Popen('sudo /absolute/path/to/file', shell=True)

推荐阅读