Problema no comando invocar sudo make install no script python

0

Eu escrevi o seguinte código para configurar o pacote yara no meu script, mas quando ele chama o sudo make install, o python me dá um erro. Como posso consertar isso?

    def yara_installation(self):
    os.chdir("yara/")
    self.installYara = "./bootstrap.sh;./configure;make;sudo make install"
    for self.items in self.installYara.split(";"):
        if (subprocess.run(self.items, stdout=DEVNULL, stderr=DEVNULL)):
            self.color.print_blue("\t[+] {} command is running.".format(self.items))
        else:
            self.color.print_blue("\t[+] {} command isn't running.".format(self.items))

A exceção é: [Errno 2] Nenhum arquivo ou diretório: 'sudo make install'

    
por Milad 25.07.2016 / 12:40

1 resposta

0

Substitua seu comando subprocess.run() por:

subprocess.call(self.items, stdout=DEVNULL, stderr=DEVNULL,shell=True)

Isso deve funcionar, no entanto, eu pessoalmente abordaria isso usando listas, e chamaria shell específico para cada script de shell. No entanto, shell=True chamará /bin/sh no seu bootstrap.sh , o que, esperamos, não contém nenhum bashismo e é portátil.

    
por Sergiy Kolodyazhnyy 25.07.2016 / 22:17