我制作了我的小型 Python 应用程序,但无法使用我创建的桌面条目启动该应用程序:
[Desktop Entry]
Name=MyApp
Version=0.1
Exec=/usr/share/MyApp/MyApp.py
Icon=/usr/share/MyApp/img/MyApp.png
Comment=Description......
Type=Application
Terminal=false
StartupNotify=false
Categories=Video;GTK;GNOME
/usr/share/MyApp
我以 root 身份创建的文件夹具有MyApp.py
可执行属性。
每次我双击MyApp.desktop
启动MyApp.py
时,都会显示一个系统托盘图标,但它会关闭并使 Ubuntu 显示错误消息。
如果我从终端运行MyApp.py
或双击文件,.py
它会正常运行,不会崩溃。
答案1
我可以针对已接受的答案提供一些注释和改进吗?
/usr/share
手动安装软件强烈反对!该树应保留用于由您的软件包管理器(Ubuntu 软件中心、apt
等)安装的软件。 有usr/local/share
。 或者,如果您不想使用sudo
,您可以仅为您的用户安装~/.local/share
。 请参阅https://askubuntu.com/a/135679/11015有关软件安装目录的更多信息。如果您想
.desktop
通过双击来执行文件,在 Nautilus 或桌面上,只需使文件.desktop
可执行!请注意,如果您将其复制到并通过 Dash/Menu 启动它,则不需要这样做/usr/share/applications
。或者,更好的方法是:复制到~/.local/share/applications
或至少/usr/local/share/applications
,如上所述。Icon=/usr/share/MyApp/MyApp.py
没有意义:.py
文件不是有效图像,因此不能用作图标。如果要使用默认的 Python 图标,请使用/usr/share/pixmaps/python.xpm
.desktop
您的文件和接受的答案之间的主要区别在于Path=/usr/share/MyApp/
声明。如果那让你的应用程序运行,这意味着你的软件需要当前目录是应用程序目录。这是一件坏事:无论当前目录如何,您的软件都应该能够正常运行并找到其数据文件。(提示:使用 python 的__file__
)如果您的应用程序是 GUI(即,它有一个窗口),则添加
StartupNotify=true
。它将帮助启动器在运行时识别其窗口。
答案2
尝试在您的 .desktop 文件中遵循以下文本。
[Desktop Entry]
Version=1.0
Name=ProgramName
Comment=This is my comment
Exec=/usr/share/MyApp/MyApp.py
Icon=/usr/share/MyApp/MyApp.py
Path=/usr/share/MyApp/
Terminal=false
Type=Application
Categories=Utility;Application;
答案3
我认为你应该将你的 Python 文件移动到/usr/local/bin
或/bin
并删除.py
末尾并添加#!/bin/python3
到你的 Python 文件的第一行,然后将你的图标复制到/usr/share/pixmaps
并将其添加到.desktop
文件中
Exec=<your file name which is in bin>
Icon=<your logo name without .png or xpm at back>