como criar um arquivo .desktop para iniciar um script python

2

Eu fiz meu pequeno aplicativo python, mas agora não consigo iniciar o aplicativo no .desktop que eu fiz:

[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

a pasta / usr / share / MyApp que fiz como raiz, o MyApp.py tem propriedades executáveis

sempre que Doble Clique no MyApp.desktop no lançamento MyApp.py, exiba um ícone systray, mas ele é fechado e faz o Ubuntu exibir uma mensagem de erro.

se eu executar o arquivo MyApp.py do Terminal ou o DClick no arquivo .py, ele é executado normalmente, sem falhas

    
por aaaaaaaaaaaaaaa 08.09.2013 / 16:40

2 respostas

1

Tente seguir o texto no seu arquivo .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;
    
por dedunumax 08.09.2013 / 16:46
8

Posso oferecer algumas notas e melhorias sobre a resposta aceita?

  • A instalação manual do software em /usr/share é strongmente desencorajada !!! Essa árvore deve ser reservada para o software instalado pelo seu gerenciador de pacotes (Ubuntu Software Center, apt , etc). Há usr/local/share para isso. Ou, se você não quiser usar sudo , poderá instalar apenas para seu usuário em ~/.local/share . Consulte o link para obter mais informações sobre os diretórios de instalação de software.

  • Se você quiser executar um arquivo .desktop clicando duas vezes nele, no Nautilus ou na sua área de trabalho, basta executar o arquivo .desktop . Observe que isso não é necessário se você copiá-lo para /usr/share/applications e iniciá-lo via Dash / Menu. Ou melhor: copie para ~/.local/share/applications ou pelo menos /usr/local/share/applications , conforme sugerido acima.

  • Icon=/usr/share/MyApp/MyApp.py não faz sentido: um arquivo .py não é uma imagem válida, por isso não pode ser usado como um ícone. Se você quiser usar o ícone python padrão, use /usr/share/pixmaps/python.xpm

  • A principal diferença entre o arquivo .desktop e a resposta aceita é a instrução Path=/usr/share/MyApp/ . Se isso fez seu aplicativo funcionar, significa que seu software requer que o diretório atual seja o diretório do aplicativo. E isso é uma coisa ruim: seu software deve ser capaz de rodar bem e encontrar seus arquivos de dados, independentemente do diretório atual. ( dica: use __file__ ) do python

  • Se o seu aplicativo for uma GUI (ou seja, tiver uma janela), adicione StartupNotify=true . Isso ajudará o ativador a identificar sua janela quando estiver em execução.

por MestreLion 17.08.2014 / 09:11