Не может заставить .desktop файл запускать скрипт Python

РЕДАКТИРОВАНИЕ 9: Прежде, чем записать ответ, говорящий для изменения Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py кому: Exec=something or another, .desktop файл Exec= код не является проблемой, поскольку это хорошо работает с gtk-launch. Проблема состоит в том, что это не работает из Выставочных Приложений, это просто ничего не делает. Также наблюдайте мой снимок экрана, таким образом, Вы видите точно, какова проблема.

Я пытался (в течение нескольких часов теперь) получить a .desktop файл для запущения моего скрипта Python, но когда я нажимаю на значок в окне приложений, ничего не происходит.

Вот мой код .desktop:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
Name=Volume GUI
Icon=/home/insertUsernameHere/volumeGUI/volumeGUI_Logo.png

Обратите внимание на это, когда я буду работать /home/insertUsernameHere/volumeGUI/volumeGUI.py в терминале это хорошо работает.

Править: Вот мой код Python

#!/usr/bin/env python3

from tkinter import *
from tkinter.font import *
import subprocess

top = Tk()
top.resizable(False, False)
top.title("Python Volume Controller")
padx = 10
pady = 10
myFont = Font(family = "helvetica", size = 16, weight = "bold")

volumeTextVariable = StringVar()
currentVolumeText = Label(top, textvariable = volumeTextVariable, font = myFont)
currentVolumeText.grid(row = 1, column = 0, columnspan = 2, padx=padx, pady=pady)

volumeIncrement = 2

def volumeUp(volume):
    if (volume + volumeIncrement) <= 100:
        subprocess.call("pactl set-sink-volume 0 +" + str(volumeIncrement) + r"%", shell=True)
        volumeTextVariable.set("Current Volume: " + getVolume() + r"%")

def volumeDown(volume):
    if (volume - volumeIncrement) >= 0:
        subprocess.call("pactl set-sink-volume 0 -" + str(volumeIncrement) + r"%", shell=True)
        volumeTextVariable.set("Current Volume: " + getVolume() + r"%")

def getVolume():
    try:
        volume = subprocess.Popen("amixer get Master |grep % |awk '{print $4}'|sed 's/[^0-9]//g'", stdout=subprocess.PIPE, shell=True).communicate()[0].decode("utf-8")[:-1]
    except:
        volume = -404
    return volume

volumeTextVariable.set("Current Volume: " + getVolume() + r"%")

volUpButton = Button(top, text = "Volume Up", command = lambda: volumeUp(int(getVolume())), font = myFont)
volDownButton = Button(top, text = "Volume Down", command = lambda: volumeDown(int(getVolume())), font = myFont)
volUpButton.grid(row = 2, column = 1, padx=padx, pady=pady)
volDownButton.grid(row = 2, column = 0, padx=padx, pady=pady)

top.mainloop()

РЕДАКТИРОВАНИЕ 6: GIF того, что я работал .desktop файл в командной строке с gtk-launch volumeGUI.desktop и это работа, но не работа при попытке запустить его от Show Applications
Снимок экрана

РЕДАКТИРОВАНИЕ 7: Я с тех пор улучшил свой код Python: https://paste.ubuntu.com/p/QF6PVrSPSy/

РЕДАКТИРОВАНИЕ 8: Я изменился Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py кому: Exec=bash -c "/home/insertUsernameHere/volumeGUI/volumeGUI.py 2>&1 > ~/logfile.txt" согласно предложению и когда я любое выполнение это с gtk-launch или попытайтесь выполнить его из Выставочных Приложений, файл журнала пуст.

0
задан 3 September 2018 в 22:16

1 ответ

Попытайтесь изменить Должностное лицо =/script.py на Exec=python3/script.py

, у меня есть несколько программ Java, которые я запускаю через .desktop файлы. Некоторые даже выполняются на начальной загрузке... Извините настолько короткий, отправляя по моему телефону.

0
ответ дан 13 April 2019 в 13:32

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

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