我正在使用Python为Ubuntu创建一个背景转换器,主要是为了好玩。当我从shell运行脚本时,它可以工作并交替显示某个文件夹中图像之间的背景。现在我试图通过.profile运行脚本,以便它在登录时运行。脚本肯定在运行 - 我在相关函数中放了一个打印参数,当我点击&#;; alt,ctrl,f3'时,我看到print语句的输出 - 但无论出于何种原因,以这种方式调用函数时,background不会改变。我不认为这是从非本地目录运行它的问题 - 正如我所说,如果我运行' python program / python / desktop_changer / main.py' ,桌面更换器运行得很好。
以下是该功能的相关部分:
if __name__ == "__main__":
time.sleep(15)
os.chdir(os.path.dirname(os.path.realpath(__file__)))
while True:
#Set pic, set timer, run continously
for img in os.listdir('pics/'):
#This next line is functional when I hit 'alt, ctrl, f3', outputting the paths for new images every ten seconds
print(os.path.abspath('pics/' + img))
set_gnome_wallpaper(os.path.abspath('pics/' + img))
time.sleep(float(10))
和set_gnome_wallpaper():
def set_gnome_wallpaper(file_path):
command = "gsettings set org.gnome.desktop.background picture-options 'zoom' && gsettings set org.gnome.desktop.background picture-uri file://'%s'" % file_path
subprocess.call(command, shell=True)
在〜/ .profile中:(SPE和20是不相关的参数,它们的用法被注释掉,直到我能正常运行)
python /home/chessie/program/python/desktop_changer/main.py SPE 20 &