在Python脚本中使用"apt-get install xxx"

Fed*_*tta 8 python apt apt-get

根据操作系统,目前我需要使用apt或rpm安装一些软件包.我看到lib"apt"更新或升级系统,但有可能用它来安装一个软件包吗?

我试图使用"subprocess":

subprocess.Popen('apt-get install -y filetoinstall', shell=True, stdin=None, stdout=None, stderr=None, executable="/bin/bash")
Run Code Online (Sandbox Code Playgroud)

但是这个命令显示了shell中的所有进程,我无法隐藏它.

谢谢您的帮助.

Rus*_*ias 10

您可以check_callsubprocess图书馆中使用.

from subprocess import STDOUT, check_call
import os
check_call(['apt-get', 'install', '-y', 'filetoinstall'],
     stdout=open(os.devnull,'wb'), stderr=STDOUT) 
Run Code Online (Sandbox Code Playgroud)

转储stdout/dev/null,或os.devnull在这种情况下.

os.devnull是平台独立的,将/dev/null在POSIX和nulWindows 上返回(这与您使用时无关,apt-get但仍然很好知道:))


Fed*_*tta 5

谢谢大家!我使用每种解决方案的一部分。我的代码:

proc = subprocess.Popen('apt-get install -y FILE', shell=True, stdin=None, stdout=open(os.devnull,"wb"), stderr=STDOUT, executable="/bin/bash")
proc.wait()
Run Code Online (Sandbox Code Playgroud)

新增:stdout和.wait

多谢您来阿根廷一次!