python script in wingrass

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

python script in wingrass

gianluca.massei

Ciao a tutti,
era dai tempi del lancio di windows XP che non mi cimentavo in tali sistemi operativi. Ora, però, sto cercando di far funzionare un mio script in python per vedere come si comporta in windows. Ho installato l'eseguibile di wingrass 6.4 ed ho copiato nella cartella script il file del mio lavoro. Quando la lancio all'interno di GRASS ottengo una finestra che mi dice una cosa del tipo "Per aprire il file orre indicare il programma con cui è stato creato. E' possibile eseguire una ricerca sul web ...".
La versione di windows è XP service SP2.

Qualcuna mi piò aiutare?


gianluca

 

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
569 iscritti al 4.1.2012
Reply | Threaded
Open this post in threaded view
|

Re: python script in wingrass

Luca Sigfrido Percich
Ciao Gianluca,

nella tua installazione i files .py non sembrano essere associati a
nessuna applicazione.

Apri Esplora Risorse, menu Strumenti | Opzioni Cartella | Tipi di file:

Nuovo >  inserisci .py come estensione e dai ok.
Seleziona il tipo di file "PY"
Di fianco ad Apri con... clicca su Cambia | Seleziona il programma da
elenco | Sfoglia e seleziona l'eseguibile python.

Con Avanzate puoi aggiungere diversi comandi associati al file (es. apri
in Notepad), ma l'apertura con python deve rimanere quella predefinita.

Le cose si complicano se hai bisogno di far partire python dalla shell
di Grass, nel qual caso devi costruirgli una stringa comando di avvio
più complessa: nel caso facci sapere.

Buon lavoro

Sig


Il giorno sab, 17/03/2012 alle 16.30 +0100, [hidden email] ha
scritto:

> Ciao a tutti,
> era dai tempi del lancio di windows XP che non mi cimentavo in tali
> sistemi operativi. Ora, però, sto cercando di far funzionare un mio
> script in python per vedere come si comporta in windows. Ho installato
> l'eseguibile di wingrass 6.4 ed ho copiato nella cartella script il
> file del mio lavoro. Quando la lancio all'interno di GRASS ottengo una
> finestra che mi dice una cosa del tipo "Per aprire il file orre
> indicare il programma con cui è stato creato. E' possibile eseguire
> una ricerca sul web ...".
> La versione di windows è XP service SP2.
>
> Qualcuna mi piò aiutare?
>
>
> gianluca
>
>
>  
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 569 iscritti al 4.1.2012

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
569 iscritti al 4.1.2012
Reply | Threaded
Open this post in threaded view
|

Re: python script in wingrass

Luca Sigfrido Percich
Ciao Gianluca,

mentre in linux puoi rendere eseguibile un file .py mettendo come prima
riga la shebang seguita dal programma con cui esegui lo script, es.

#! /bin/env python

(e ovviamente rendendo eseguibile il file con chmod)
in windows non puoi farlo.

In win, se vuoi eseguire lo script da shell devi fare:

> start r.mcda.roughset.py

e se è correttamente associato a python.exe dovrebbe funzionare.

Oppure devi essere più esplicito:
> python r.mcda.roughset.py

Se invece lo chiami come se fosse un eseguibile

> r.mcda.roughset.py

allora l'interprete si ferma alla prima riga, e restituisce il tuo
errore. Questo è il tuo caso. Tu o grass state tentando quest'ultimo
tipo di chiamata.

Il problema quindi risiede nel modo di chiamare lo script; se gli altri
script funzionano evidentemente python è installato e le loro chiamate
sono corrette, prova a vedere come sono fatti o configurati. Purtoppo ho
usato wingrass secoli fa e non so aiutarti direttamente. Facci sapere
comunque.

Sig


Il giorno sab, 17/03/2012 alle 23.54 +0100, gianluca massei ha scritto:

> Ciao Luca, grazie dell'aiuto,
> il mio problema è che lo script in python, che dovrebbe girare in
> grass (si tratta di un addons), non lavora proprio. Dopo la verifica
> della corretta assegnazione dell'estensione py all'eseguibile di
> python, in grass64 continuo ad avere: "r.mcda.roughset.py" non è
> riconosciuto come comando interno o esterno,  un programma eseguibile
> o un file batch."
>  Ho fatto una prova anche con grass70 installato con osgeo4w ma il
> risultato che ottengo è questo:" /bin/env: python : No such file or
> directory". Tieni conto che tutti gli altri script di grass70, in
> python, funzionano correttamente.
> Non riesco a capire cosa sbaglio.
>
> Grazie
>
> Gianluca
>
>
> Il giorno 17 marzo 2012 18:51, Luca Sigfrido Percich
> <[hidden email]> ha scritto:
>         Ciao Gianluca,
>        
>         nella tua installazione i files .py non sembrano essere
>         associati a
>         nessuna applicazione.
>        
>         Apri Esplora Risorse, menu Strumenti | Opzioni Cartella | Tipi
>         di file:
>        
>         Nuovo >  inserisci .py come estensione e dai ok.
>         Seleziona il tipo di file "PY"
>         Di fianco ad Apri con... clicca su Cambia | Seleziona il
>         programma da
>         elenco | Sfoglia e seleziona l'eseguibile python.
>        
>         Con Avanzate puoi aggiungere diversi comandi associati al file
>         (es. apri
>         in Notepad), ma l'apertura con python deve rimanere quella
>         predefinita.
>        
>         Le cose si complicano se hai bisogno di far partire python
>         dalla shell
>         di Grass, nel qual caso devi costruirgli una stringa comando
>         di avvio
>         più complessa: nel caso facci sapere.
>        
>         Buon lavoro
>        
>         Sig
>        
>        
>         Il giorno sab, 17/03/2012 alle 16.30 +0100, [hidden email]
>         ha
>         scritto:
>         > Ciao a tutti,
>         > era dai tempi del lancio di windows XP che non mi cimentavo
>         in tali
>         > sistemi operativi. Ora, però, sto cercando di far funzionare
>         un mio
>         > script in python per vedere come si comporta in windows. Ho
>         installato
>         > l'eseguibile di wingrass 6.4 ed ho copiato nella cartella
>         script il
>         > file del mio lavoro. Quando la lancio all'interno di GRASS
>         ottengo una
>         > finestra che mi dice una cosa del tipo "Per aprire il file
>         orre
>         > indicare il programma con cui è stato creato. E' possibile
>         eseguire
>         > una ricerca sul web ...".
>         > La versione di windows è XP service SP2.
>         >
>         > Qualcuna mi piò aiutare?
>         >
>         >
>         > gianluca
>         >
>         >
>         >
>        
>         > _______________________________________________
>         > Iscriviti all'associazione GFOSS.it:
>         http://www.gfoss.it/drupal/iscrizione
>         > [hidden email]
>         > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>         > Questa e' una lista di discussione pubblica aperta a tutti.
>         > Non inviate messaggi commerciali.
>         > I messaggi di questa lista non rispecchiano necessariamente
>         > le posizioni dell'Associazione GFOSS.it.
>         > 569 iscritti al 4.1.2012
>        
>

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
569 iscritti al 4.1.2012
Reply | Threaded
Open this post in threaded view
|

Re: python script in wingrass

gianluca massei
Grazie dell'aiuto Luca,
mi sono studiato gli script in python di grass 7  nella cartella script ma non ho trovato alcun errore che potesse giustificare ilc omportamento del mio scritp. Solo per scrupolo, ho copiato e in incollato dallo scritp r.mask.py la prima riga "#!/usr/bin/env python" ed ho provato a lanciarlo. Ora tutto funziona bene. Forse si trattava di un fine linea non riconosciuto?

Grazie e a presto

Gianluca

Il giorno 18 marzo 2012 10:29, Luca Sigfrido Percich <[hidden email]> ha scritto:
Ciao Gianluca,

mentre in linux puoi rendere eseguibile un file .py mettendo come prima
riga la shebang seguita dal programma con cui esegui lo script, es.

#! /bin/env python

(e ovviamente rendendo eseguibile il file con chmod)
in windows non puoi farlo.

In win, se vuoi eseguire lo script da shell devi fare:

> start r.mcda.roughset.py

e se è correttamente associato a python.exe dovrebbe funzionare.

Oppure devi essere più esplicito:
> python r.mcda.roughset.py

Se invece lo chiami come se fosse un eseguibile

> r.mcda.roughset.py

allora l'interprete si ferma alla prima riga, e restituisce il tuo
errore. Questo è il tuo caso. Tu o grass state tentando quest'ultimo
tipo di chiamata.

Il problema quindi risiede nel modo di chiamare lo script; se gli altri
script funzionano evidentemente python è installato e le loro chiamate
sono corrette, prova a vedere come sono fatti o configurati. Purtoppo ho
usato wingrass secoli fa e non so aiutarti direttamente. Facci sapere
comunque.

Sig


Il giorno sab, 17/03/2012 alle 23.54 +0100, gianluca massei ha scritto:
> Ciao Luca, grazie dell'aiuto,
> il mio problema è che lo script in python, che dovrebbe girare in
> grass (si tratta di un addons), non lavora proprio. Dopo la verifica
> della corretta assegnazione dell'estensione py all'eseguibile di
> python, in grass64 continuo ad avere: "r.mcda.roughset.py" non è
> riconosciuto come comando interno o esterno,  un programma eseguibile
> o un file batch."
>  Ho fatto una prova anche con grass70 installato con osgeo4w ma il
> risultato che ottengo è questo:" /bin/env: python : No such file or
> directory". Tieni conto che tutti gli altri script di grass70, in
> python, funzionano correttamente.
> Non riesco a capire cosa sbaglio.
>
> Grazie
>
> Gianluca
>
>
> Il giorno 17 marzo 2012 18:51, Luca Sigfrido Percich
> <[hidden email]> ha scritto:
>         Ciao Gianluca,
>
>         nella tua installazione i files .py non sembrano essere
>         associati a
>         nessuna applicazione.
>
>         Apri Esplora Risorse, menu Strumenti | Opzioni Cartella | Tipi
>         di file:
>
>         Nuovo >  inserisci .py come estensione e dai ok.
>         Seleziona il tipo di file "PY"
>         Di fianco ad Apri con... clicca su Cambia | Seleziona il
>         programma da
>         elenco | Sfoglia e seleziona l'eseguibile python.
>
>         Con Avanzate puoi aggiungere diversi comandi associati al file
>         (es. apri
>         in Notepad), ma l'apertura con python deve rimanere quella
>         predefinita.
>
>         Le cose si complicano se hai bisogno di far partire python
>         dalla shell
>         di Grass, nel qual caso devi costruirgli una stringa comando
>         di avvio
>         più complessa: nel caso facci sapere.
>
>         Buon lavoro
>
>         Sig
>
>
>         Il giorno sab, 17/03/2012 alle 16.30 +0100, [hidden email]
>         ha
>         scritto:
>         > Ciao a tutti,
>         > era dai tempi del lancio di windows XP che non mi cimentavo
>         in tali
>         > sistemi operativi. Ora, però, sto cercando di far funzionare
>         un mio
>         > script in python per vedere come si comporta in windows. Ho
>         installato
>         > l'eseguibile di wingrass 6.4 ed ho copiato nella cartella
>         script il
>         > file del mio lavoro. Quando la lancio all'interno di GRASS
>         ottengo una
>         > finestra che mi dice una cosa del tipo "Per aprire il file
>         orre
>         > indicare il programma con cui è stato creato. E' possibile
>         eseguire
>         > una ricerca sul web ...".
>         > La versione di windows è XP service SP2.
>         >
>         > Qualcuna mi piò aiutare?
>         >
>         >
>         > gianluca
>         >
>         >
>         >
>
>         > _______________________________________________
>         > Iscriviti all'associazione GFOSS.it:
>         http://www.gfoss.it/drupal/iscrizione
>         > [hidden email]
>         > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>         > Questa e' una lista di discussione pubblica aperta a tutti.
>         > Non inviate messaggi commerciali.
>         > I messaggi di questa lista non rispecchiano necessariamente
>         > le posizioni dell'Associazione GFOSS.it.
>         > 569 iscritti al 4.1.2012
>
>



_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
569 iscritti al 4.1.2012
Reply | Threaded
Open this post in threaded view
|

Re: python script in wingrass

Luca Sigfrido Percich
Ciao Gianluca,

devi perdonarmi, non pensavo più al fatto che grass in windows lavora in
un ambiente che emula unix (ho vaghi ricordi di cose dai nomi evocativi
tipo msys e cygwin). Quindi anche gli script python devono essere
lanciati nella stessa shell unix, e non dall'interprete dei comandi di
windows (cmd.exe)

Rileggendo il tuo primo messaggio di errore da grass70 (ovvero dalla
shell unix emulata con l'ambiente impostato per grass70), /bin/env non
trovava python, mentre da quanto riporti, /usr/bin/env si. Io sulla mia
ubuntu non ce l'ho nemmeno /bin/env, ma ho solo /usr/bin/env; se fai
"which python" probabilmente ti dirà /usr/bin/python.

Per il resto vale quanto detto sull'uso della shebang negli script.

Ciao, scusa per la confusione e buon lavoro

Sig

Il giorno dom, 18/03/2012 alle 12.03 +0100, gianluca massei ha scritto:

> mi sono studiato gli script in python di grass 7  nella cartella
> script ma non ho trovato alcun errore che potesse giustificare ilc
> omportamento del mio scritp. Solo per scrupolo, ho copiato e in
> incollato dallo scritp r.mask.py la prima riga "#!/usr/bin/env python"
> ed ho provato a lanciarlo. Ora tutto funziona bene. Forse si trattava
> di un fine linea non riconosciuto?

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
569 iscritti al 4.1.2012