Как выполнить команду ubuntu в коде python?

Хорошо, согласно вашему вопросу, самым простым сценарием будет:

#!/bin/sh
LIST_OF_APPS="a b c d e"

aptitude update
aptitude install -y $LIST_OF_APPS

Однако вы также можете ввести aptitude update && aptitude install -y a b c d e. Так что, может быть, ваш вопрос отсутствует здесь. Если есть какие-то дополнительные требования, было бы неплохо их объяснить.

0
задан 20 January 2018 в 12:33

3 ответа

Редактирование dconf / gsettings из python

Вам больше не нужно использовать os.system() для системных вызовов, он устарел и полностью устарел в течение длительного времени.

Там это различные варианты редактирования базы данных dconf.

Использование подпроцесса

Скажем, у меня есть dconf путь /com/gexperts/Tilix/keybindings/app-shortcuts, я могу использовать:

import subprocess

key = "/com/gexperts/Tilix/keybindings/app-shortcuts"

subprocess.Popen([
    "dconf", "write", key, "'enabled'"
])

Обратите внимание на цитату!

Однако в большинстве случаев вы также сможете использовать (лучше) gsettings. Используйте Gio.Settings, если значение также можно установить из gsettings.

Использование Gio.Settings

from gi.repository import Gio

key = "com.gexperts.Tilix.Keybindings"

settings = Gio.Settings.new(key)
settings.set_string("app-shortcuts", "enabled")

См. Также https: // lazka.github.io/pgi-docs/#Gio-2.0/classes/Settings.html#Gio.Settings и https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Settings.html [ ! d10]

О gsettings / dconf

Предпочтения по современным версиям Ubuntu в основном хранятся в базе данных dconf в двоичном формате. Эти настройки можно редактировать непосредственно с помощью dconf (cli) или dconf-editor (gui). Dconf - это низкий уровень и прямое редактирование настроек с помощью dconf очень быстро и легко.

В целом, однако, рекомендуется поправлять настройки в базе данных через gsettings, если это возможно, что интерфейс cli к dconf. Причина в том, что gsettings имеет проверку согласованности, более безопасную для использования.

Вы можете найти это интересное, прочитанное в gsettings: https://lazka.github.io/pgi- docs / # Gio-2.0 / classes / Settings.html # Gio.Settings

И этот на dconf: https://developer.gnome.org/dconf/unstable/dconf -tool.html

Примечания

Я использовал другой путь / ключ, потому что я не запускаю Unity.
5
ответ дан 22 May 2018 в 15:25
  • 1
    Код dconf выполняется для меня, но если я выполняю код gsettings, я получаю эту ошибку (процесс: 5879): GLib-GIO-ERROR **: схема настроек «org.compiz.profiles.unity.plugins.unityshell» не установлена. Trace / ловушка точки останова (сбрасывается сердцевина). Я просто хочу знать, почему gsettings не выполняется и dconf выполняется? схема gsettings и dconf одинаковые или разные. Любой, как я решил свою проблему :-) – Dinesh 20 January 2018 в 15:46
  • 2
    @Dinesh, какая у вас версия Ubuntu? Просто установленный 16.04 в VM, ключ там не существует. Не в dconf. – Jacob Vlijm 20 January 2018 в 17:05
  • 3
    обновление с 14.04 по 16.04. Оба пожилых человека работают нормально. @Jacob благодарит вас за ваши предложения и комментарии – Dinesh 20 January 2018 в 17:24

Редактирование dconf / gsettings из python

Вам больше не нужно использовать os.system() для системных вызовов, он устарел и полностью устарел в течение длительного времени.

Там это различные варианты редактирования базы данных dconf.

Использование подпроцесса

Скажем, у меня есть dconf путь /com/gexperts/Tilix/keybindings/app-shortcuts, я могу использовать:

import subprocess key = "/com/gexperts/Tilix/keybindings/app-shortcuts" subprocess.Popen([ "dconf", "write", key, "'enabled'" ])

Обратите внимание на цитату!

Однако в большинстве случаев вы также сможете использовать (лучше) gsettings. Используйте Gio.Settings, если значение также можно установить из gsettings.

Использование Gio.Settings

from gi.repository import Gio key = "com.gexperts.Tilix.Keybindings" settings = Gio.Settings.new(key) settings.set_string("app-shortcuts", "enabled")

См. Также https: // lazka.github.io/pgi-docs/#Gio-2.0/classes/Settings.html#Gio.Settings и https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Settings.html [ ! d10]

О gsettings / dconf

Предпочтения по современным версиям Ubuntu в основном хранятся в базе данных dconf в двоичном формате. Эти настройки можно редактировать непосредственно с помощью dconf (cli) или dconf-editor (gui). Dconf - это низкий уровень и прямое редактирование настроек с помощью dconf очень быстро и легко.

В целом, однако, рекомендуется поправлять настройки в базе данных через gsettings, если это возможно, что интерфейс cli к dconf. Причина в том, что gsettings имеет проверку согласованности, более безопасную для использования.

Вы можете найти это интересное, прочитанное в gsettings: https://lazka.github.io/pgi- docs / # Gio-2.0 / classes / Settings.html # Gio.Settings

И этот на dconf: https://developer.gnome.org/dconf/unstable/dconf -tool.html

Примечания

Я использовал другой путь / ключ, потому что я не запускаю Unity.
5
ответ дан 17 July 2018 в 22:37

Редактирование dconf / gsettings из python

Вам больше не нужно использовать os.system() для системных вызовов, он устарел и полностью устарел в течение длительного времени.

Там это различные варианты редактирования базы данных dconf.

Использование подпроцесса

Скажем, у меня есть dconf путь /com/gexperts/Tilix/keybindings/app-shortcuts, я могу использовать:

import subprocess key = "/com/gexperts/Tilix/keybindings/app-shortcuts" subprocess.Popen([ "dconf", "write", key, "'enabled'" ])

Обратите внимание на цитату!

Однако в большинстве случаев вы также сможете использовать (лучше) gsettings. Используйте Gio.Settings, если значение также можно установить из gsettings.

Использование Gio.Settings

from gi.repository import Gio key = "com.gexperts.Tilix.Keybindings" settings = Gio.Settings.new(key) settings.set_string("app-shortcuts", "enabled")

См. Также https: // lazka.github.io/pgi-docs/#Gio-2.0/classes/Settings.html#Gio.Settings и https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Settings.html [ ! d10]

О gsettings / dconf

Предпочтения по современным версиям Ubuntu в основном хранятся в базе данных dconf в двоичном формате. Эти настройки можно редактировать непосредственно с помощью dconf (cli) или dconf-editor (gui). Dconf - это низкий уровень и прямое редактирование настроек с помощью dconf очень быстро и легко.

В целом, однако, рекомендуется поправлять настройки в базе данных через gsettings, если это возможно, что интерфейс cli к dconf. Причина в том, что gsettings имеет проверку согласованности, более безопасную для использования.

Вы можете найти это интересное, прочитанное в gsettings: https://lazka.github.io/pgi- docs / # Gio-2.0 / classes / Settings.html # Gio.Settings

И этот на dconf: https://developer.gnome.org/dconf/unstable/dconf -tool.html

Примечания

Я использовал другой путь / ключ, потому что я не запускаю Unity.
5
ответ дан 24 July 2018 в 13:13

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

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