无法获取 .desktop 文件来运行 python 脚本

无法获取 .desktop 文件来运行 python 脚本

编辑9:在写答案说要更改Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py为之前Exec=something or another.desktop文件Exec=代码不是问题,因为它可以很好地运行gtk-launch。问题是它不能从“显示应用程序”运行,它什么也不做。另外看我的屏幕截图这样你就能清楚地看到问题所在。

我一直在尝试(已经有几个小时了)获取一个.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:.desktop在命令行中运行该文件的 GIF 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

答案1

尝试将 Exec=/script.py 更改为 Exec=python3 /script.py

我有几个 Java 程序是通过 .desktop 文件运行的。有些甚至在启动时执行...抱歉这么短,我是通过手机发帖的。

相关内容