2015-05-29 11 views
5

Non riesco a lanciare uno script python da un launcher .desktop creato su Linux Mint 17.1 Cinnamon.Desktop Launcher per Python Script Avvia il programma in un percorso errato (Linux)

Il problema è che lo script sarà lanciato in strada sbagliata -. Vale a dire la cartella casa invece di directory si è posto in tal modo non è possibile trovare altri file vitali accompagnandolo nella sua cartella e quindi non lavoro.

Per esaminare tale comportamento scorretto ho creato un breve script per controllare la cartella di uno script Python viene eseguito in:

#!/usr/bin/env python 

import subprocess 
import time 

subprocess.call(["pwd"], shell=True) 
time.sleep(7) # to get a chance to read the output 

esecuzione dalla propria cartella dà l'output:

/home/myusername/PythonProjects 

Sono impostazione di un desktop launcher tramite il menu di Nemo. Ora eseguire le stesse rese di script:

/home/myusername 

Non capisco questo comportamento. Come posso creare un launcher desktop funzionante per il mio script python?

risposta

2

La pagina https://linuxcritic.wordpress.com/2010/04/07/anatomy-of-a-desktop-file/ descrive il formato dei file .desktop.

Si può notare l'elemento "Path", che specifica la directory di lavoro per il file per essere eseguito in. Nel tuo caso si vorrebbe un file desktop che specificato

Path=/home/myusername/PythonProjects 

Se Nemo non consente per impostare l'elemento Path che potrebbe essere necessario modificare manualmente il file desktop. I file .desktop sono file di testo e probabilmente li puoi trovare in /home/myusername/.local/share/applications/

+0

Grazie per la tua risposta, James. Sebbene l'aggiunta della voce Path al file desktop del programma di testo descritto abbia effettivamente modificato la directory di lavoro, il mio programma attuale non può ancora essere eseguito in questo modo. Invece si avvia viene interrotto con il messaggio di errore: "Si è verificato un errore durante l'avvio dell'applicazione." Come procedere da qui? Quali informazioni vorresti per capire il mio problema? – pykong

+0

Felice di aiutare un po '. L'errore sarebbe un problema diverso. Vedi http://askubuntu.com/questions/436999/how-do-i-diagnose-the-was-an-error-launching-the-application per una procedura per diagnosticare quale sia l'errore in realtà è –

+1

Caro, James grazie per il tuo prezioso contributo Sono riuscito a risolvere l'errore che ho descritto inserendo uno script di shell con l'unico comando di avviare il mio script python all'interno della rispettiva cartella. Sono quindi riuscito a lanciare lo script di shell e quindi la mia applicazione python tramite un launcher .desktop. Tuttavia, il .desktop fie doveva essere esteso affermando la directory di lavoro nel modo in cui hai suggerito. Sono molto soddisfatto del risultato e sento di aver approfondito la mia comprensione di Linux. Tuttavia, non capisco perché un programma di avvio non avviasse automaticamente il proprio target all'interno della propria directory. – pykong

Problemi correlati