我想使用Python设置用户环境。 但是我不明白为什么这段代码不起作用?
环境:
Ubuntu 18.04.1
Python 2.7.15rc1
python-gi 3.26.1-2
libgtk-3-0:3.22.30-1ubu
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk,Gio
gsettings = Gio.Settings.new('org.gnome.shell.extensions.dash-to-dock')
gsettings.set_int('dash-max-icon-size', 16)
gsettings.apply()
并执行sudo python /home/username/Documents/setup.py
之类的代码。
答案 0 :(得分:1)
正如您所说,您的目标是设置 您的用户环境。当您使用sudo
command运行代码时,您是以 superuser 身份运行它的,因此实际上是在更改 root '的环境!
关于不需要.apply()
的原因:当像您一样使用Gio.Settings.new()
实例化设置时,将立即应用。来自official documentation on .apply()
:
应用对设置进行的所有更改。除非self处于“延迟应用”模式,否则此功能不会执行任何操作;请参阅Gio.Settings.delay()。通常情况下,总是立即应用设置
答案 1 :(得分:0)
当我从命令行中删除sudo
时,此代码开始工作。因此,我像运行python /home/username/Documents/setup.py
一样运行此代码,现在可以正常工作了!但是为什么呢?
...并且代码在没有gsettings.apply()
的情况下有效,因此我注释了这一行