web-dev-qa-db-ja.com

.desktopファイルを作成してpythonスクリプトを起動する方法

pythonアプリを作成しましたが、作成した.desktopからアプリを起動できません。

[Desktop Entry]
Name=MyApp
Version=0.1
Exec=/usr/share/MyApp/MyApp.py
Icon=/usr/share/MyApp/img/MyApp.png
Comment=Descriton......
Type=Application
Terminal=false
StartupNotify=false
Categories=Video;GTK;GNOME

ルートとして作成した/ usr/share/MyAppフォルダー、MyApp.pyには実行可能なプロパティがあります

dobleを実行するたびに、MyApp.pyを起動してMyApp.desktopをクリックし、システムトレイアイコンを表示しますが、閉じて、ubuntuにエラーメッセージを表示させます。

ターミナルまたはDClickからMyApp.pyを.pyファイルで実行すると、正常に実行され、クラッシュしません。

2
aaaaaaaaaaaaaaa

.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;
1
dedunumax

受け入れられた回答に対していくつかの注意点と改善点を提供できますか?

  • /usr/shareへのソフトウェアの手動インストールは強く推奨!!!パッケージマネージャー(Ubuntu Software Center、aptなど)。そのためのusr/local/shareがあります。または、Sudoを使用したくない場合は、~/.local/shareでのみユーザーにインストールできます。ソフトウェアインストールディレクトリの詳細については、 https://askubuntu.com/a/135679/11015 を参照してください。

  • Nautilusまたはデスクトップで.desktopファイルをダブルクリックして実行する場合は、.desktopファイルを実行可能にするだけです! /usr/share/applicationsにコピーしてDash/Menuから起動する場合、これは必要ないことに注意してください。または、上記のように、~/.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/ステートメントです。 thatがアプリを機能させた場合、それはソフトウェアを意味しますrequiresアプリケーションディレクトリとなる現在のディレクトリそして、それは悪いことです。現在のディレクトリに関係なく、ソフトウェアが正常に実行され、そのデータファイルを見つけることができるはずです。 (ヒント:pythonの__file__を使用)

  • アプリケーションがGUIの場合(つまり、ウィンドウがある場合)、StartupNotify=trueを追加します。ランチャーが実行中にウィンドウを識別するのに役立ちます。

8
MestreLion