我需要使用Python子进程运行DRI_PRIME=1 glxinfo
命令,也不应该造成shell注入风险。
给出如下错误:
FileNotFoundError: [Errno 2] No such file or directory: 'DRI_PRIME=1'
代码:
output = subprocess.check_output(["DRI_PRIME=1", "glxinfo"], shell=False).decode()
print(output)
System: Python3, OS: Linux
您正在寻找如何在修改后的环境中运行命令。
import os
import subprocess
env = os.environ.copy()
env['DRI_PRIME'] = '1'
p = subprocess.run(['glxinfo'], env=env, capture_output=True)
print(p.stdout)
使用以下代码解决问题:
output = subprocess.check_output(["env", "DRI_PRIME=1", "glxinfo"], shell=False).decode()
env
手册页的简短说明:
env - run a program in a modified environment