Установка пакетов человечности в рамках сценария Python

Я хочу установить следующие пакеты в рамках своего сценария Python:

python-pip python-sqlalchemy mongodb python-bson python-dpkt python-jinja2 
python-magic python-gridfs python-libvirt python-bottle python-pefile
python-chardet git build-essential autoconf automake libtool dh-autoreconf 
libcurl4-gnutls-dev libmagic-dev python-dev tcpdump libcap2-bin virtualbox 
dkms python-pyrex

Я написал следующий код, но он не работает. Как я могу решить эту проблему?

    self.command = "apt install"
    self.packages = "python-pip python-sqlalchemy mongodb python-bson python-dpkt python-jinja2 python-magic python-gridfs python-libvirt python-bottle python-pefile python-chardet git build-essential autoconf automake libtool dh-autoreconf libcurl4-gnutls-dev libmagic-dev python-dev tcpdump libcap2-bin virtualbox dkms python-pyrex"

    print("[+] Installation of the ubuntu packages is starting:")
    for items in packages:
        subprocess.run(str(command.split()) + str(items), stdout=DEVNULL, stderr=DEVNULL)
        print("\[+] Package {} Installed".format(str(self.items)))
0
задан 25 July 2016 в 09:00

2 ответа

У Вас есть несколько проблем там:

  • Вы отсутствуете self в for items in packages:
  • self.packages, строка, когда Вы звоните for item self.packages, она выполняет итерации по каждому символу той строки. Необходимо было объявить пакеты как список с начала или добавить .split() в конце.
  • Ваш self.packages длинно, не соответствует стандарту PEP8 79 символов на строку.
0
ответ дан 28 September 2019 в 19:11

Зафиксированный:

def package_installation(self):
    self.apt = "apt "
    self.ins = "install "
    self.packages = "python-pip python-sqlalchemy mongodb python-bson python-dpkt python-jinja2 python-magic python-gridfs python-libvirt python-bottle python-pefile python-chardet git build-essential autoconf automake libtool dh-autoreconf libcurl4-gnutls-dev libmagic-dev python-dev tcpdump libcap2-bin virtualbox dkms python-pyrex"

    self.color.print_green("[+] Installation of the ubuntu packages is starting:")

    for self.items in self.packages.split():
        self.command = str(self.apt) + str(self.ins) + str(self.items)

        subprocess.run(self.command.split())
        self.color.print_blue("\t[+] Package [{}] Installed".format(str(self.items)))
0
ответ дан 28 September 2019 в 19:11

Другие вопросы по тегам:

Похожие вопросы: