On 2012-11-09 16:29, Matteo Perini wrote:

Se sì, allora il problema è nello script. Il desktop launcher esegue una shell? Ovvero:

    python -c "print 'prova'" > /tmp/prova1

Questo non viene fatto...
Ho configurato il lanciatore come nell'allegato.
Non capisco cosa sbaglio... sembra che il comando "python" non sia riconosciuto.
Se scrivo in un terminale lo stesso commando viene eseguito senza
problemi e in /tmp trovo il file prova1 con all'interno scritto
"prova".

Immaginavo potesse non funzionare, per questo chiedevo. Non funziona perché il lanciatore non esegue una shell (che interpreta ">" ecc.) Questo è comprensibile.


    /bin/bash -c "python /il/tuo/script > /tmp/prova1 2>&1"

Tutto non testato.

Questo ultimo comando mi da qualche speranza... viene creato il file
/tmp/prova1 con scritto questo:

Traceback (most recent call last):
  File "prova.py", line 3079, in <module>
    win = Main()
  File "prova.py", line 49, in __init__
    builder.add_from_file('main.glade')
glib.GError: Apertura del file "main.glade" non riuscita: File o
directory non esistente

devo assegnare una working directory???

Solo se non ti va bene / o $HOME o ovunque sia quella di partenza.


il file main.glade è nella stessa cartella del file prova.py

Guarda, mentre scrivevo il messaggio di sopra avevo in mente "scommetto che ha scritto un programma che fa assunzioni su quale sia la directory corrente"...

Se proprio devi, usa os.chdir(os.path.dirname(__file__)) per fare un cd là. Ma è una pratica sbagliata, stai giocando con una variabile globale. È meglio rendere il programma indipendente dalla directory, per esempio usa

builder.add_from_file(os.path.join(os.path.dirname(__file__), 'main.glade'))

sempre, rigorosamente, non testato.


--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a