QGIS e moduli python

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

QGIS e moduli python

Luca Lanteri-2
Ciao a tutti,

ho creato un modulo in python che contiene alcune mie funzioni ma non riesco ad importarlo nella console python di qgis. 
Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:

ho creato il mio modulo c:\path\pippo.py

nel modulo ho messo una funzione:
def lippo:
    print("ciao")

da console python di qgis facendo import pippo non mi da errore ma non poi le funzioni contenute non sembrano essere importate.

Se seguo la stessa procedura da console python funziona tutto correttamente.

Qualcuno sa aiutarmi ?
grazie mille

Luca


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Luca Delucchi
2015-10-07 11:33 GMT+02:00 Luca Lanteri <[hidden email]>:
> Ciao a tutti,
>

ciao,

> ho creato un modulo in python che contiene alcune mie funzioni ma non riesco
> ad importarlo nella console python di qgis.
> Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
>
> ho creato il mio modulo c:\path\pippo.py
>
> nel modulo ho messo una funzione:
> def lippo:
>     print("ciao")
>
> da console python di qgis facendo import pippo non mi da errore ma non poi
> le funzioni contenute non sembrano essere importate.
>
> Se seguo la stessa procedura da console python funziona tutto correttamente.
>
> Qualcuno sa aiutarmi ?

prova con

import sys
sys.path.append(c:\path\)

> grazie mille
>
> Luca
>


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Luca Lanteri-2
no, non cambia niente.
In realtà il modulo sembra che venga letto correttamente perché 

print(pippo.__file__) 

mi restituisce il percorso del file ma non ho accesso alle funzioni contenute.
Grazie

Luca


Il giorno 7 ottobre 2015 11:52, Luca Delucchi <[hidden email]> ha scritto:
2015-10-07 11:33 GMT+02:00 Luca Lanteri <[hidden email]>:
> Ciao a tutti,
>

ciao,

> ho creato un modulo in python che contiene alcune mie funzioni ma non riesco
> ad importarlo nella console python di qgis.
> Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
>
> ho creato il mio modulo c:\path\pippo.py
>
> nel modulo ho messo una funzione:
> def lippo:
>     print("ciao")
>
> da console python di qgis facendo import pippo non mi da errore ma non poi
> le funzioni contenute non sembrano essere importate.
>
> Se seguo la stessa procedura da console python funziona tutto correttamente.
>
> Qualcuno sa aiutarmi ?

prova con

import sys
sys.path.append(c:\path\)

> grazie mille
>
> Luca
>


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Giuliano Curti
In reply to this post by Luca Lanteri-2
Il giorno Wed, 7 Oct 2015 11:33:17 +0200
Luca Lanteri <[hidden email]> ha scritto:

> Ciao a tutti,

ciao Luca,


> ho creato un modulo in python che contiene alcune mie funzioni ma non
> riesco ad importarlo nella console python di qgis.
> Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
> ........

> Qualcuno sa aiutarmi ?

non confermo:
a) creato un modulo pippo.py con una funzione lippo() come hai indicato
b) messo nella cartella ~/.qgis2/python/plugins
c) aperta la console python di qgis
d) caricato (senza errori) il modulo (*)
e) il comando pippo.lippo() genera l'output voluto :-)


> grazie mille
>
> Luca

ciao,
giuliano

(*) ti ricordo che con dir(pippo) puoi vedere le funzioni del modulo
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Salvatore Larosa
In reply to this post by Luca Delucchi
Ciao,

2015-10-07 11:52 GMT+02:00 Luca Delucchi <[hidden email]>:

> 2015-10-07 11:33 GMT+02:00 Luca Lanteri <[hidden email]>:
>> Ciao a tutti,
>>
>
> ciao,
>
>> ho creato un modulo in python che contiene alcune mie funzioni ma non riesco
>> ad importarlo nella console python di qgis.
>> Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
>>
>> ho creato il mio modulo c:\path\pippo.py
>>
>> nel modulo ho messo una funzione:
>> def lippo:
>>     print("ciao")
>>
>> da console python di qgis facendo import pippo non mi da errore ma non poi
>> le funzioni contenute non sembrano essere importate.
>>
>> Se seguo la stessa procedura da console python funziona tutto correttamente.
>>
>> Qualcuno sa aiutarmi ?
>
> prova con
>
> import sys
> sys.path.append(c:\path\)

oppure, puoi copiare il modulo sotto la directory /.qgis2:

>>> from custommodule import pippo
>>> pippo.lippo()
ciao

ma sarà compilato automaticamente su qualsiasi progetto aperto. Se
vuoi caricarlo solo per un progetto specifico usa le macro.

Saluti,
-SL


--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Giuliano Curti
Il giorno Wed, 7 Oct 2015 12:09:42 +0200
Salvatore Larosa <[hidden email]> ha scritto:

> Ciao,

ciao,


> ....
> > .....
>
> ma sarà compilato automaticamente su qualsiasi progetto aperto....

questo mi manca: vuoi/puoi approfondire o puoi darmi qualche link?


> Saluti,
> -SL

grazie, ciao,
giuliano

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: [ANTISPAMRT:]Re: QGIS e moduli python

Marco Guiducci-3
In reply to this post by Giuliano Curti
On Wed, 7 Oct 2015 12:09:28 +0200
giulianc51 <[hidden email]> wrote:

> Il giorno Wed, 7 Oct 2015 11:33:17 +0200
> Luca Lanteri <[hidden email]> ha scritto:
>
> > Ciao a tutti,
>
> ciao Luca,
>
>
> > ho creato un modulo in python che contiene alcune mie funzioni ma non
> > riesco ad importarlo nella console python di qgis.
> > Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
> > ........
>
> > Qualcuno sa aiutarmi ?
>
> non confermo:
> a) creato un modulo pippo.py con una funzione lippo() come hai indicato

Luca ha scritto:

def lippo:
    print("ciao")

e non lippo()

potrebbe essere?


--
Marco Guiducci <[hidden email]>
Firenze, via di Novoli 26
055 4383194
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: [ANTISPAMRT:]Re: QGIS e moduli python

Giuliano Curti
Il giorno Wed, 7 Oct 2015 12:23:07 +0200
Marco Guiducci <[hidden email]> ha scritto:

ciao Marco,


> On Wed, 7 Oct 2015 12:09:28 +0200
> giulianc51 <[hidden email]> wrote:
>
> > Il giorno Wed, 7 Oct 2015 11:33:17 +0200
> > Luca Lanteri <[hidden email]> ha scritto:
> >
> > > ....
> >
> > non confermo:
> > a) creato un modulo pippo.py con una funzione lippo() come hai
> > indicato
>
> Luca ha scritto:
>
> def lippo:
>     print("ciao")
>
> e non lippo()
>
> potrebbe essere?

la mia (mis)conoscenza del python non mi consente asserzioni però mi
sembra che pippo.lippo è considerato un attributo del modulo (che non
c'è, quindi giusto l'errore), mentre pippo.lippo() è considerata la
funzione (metodo) e dovrebbe esserci: aspettiamo fonti più
autorevoli :-)


ciao,
giuliano

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Luca Lanteri-2
In reply to this post by Giuliano Curti
scusa Luca,
riavviando qgis in effetti con sys.path.append(c:\path\) funziona tutto.

Salvatore e Giuliano,
inserendolo nella cartella .qgis 2 funziona tutto perfettamente anche a me preferirei che funzionasse tutto da una cartella dove sta il mio progetto
Il  modulo infatti vorrei caricarlo anche da uno script python che deve essere portabile. 

immagino che esista una variabile con il percorso del progetto attuale di qgis. In questo modo potrei aggiungere  sys.path.append("path del progetto") al mio script principale.
Sapete come si chiama questa variabile ?

grazie a tutti
Luca


Il giorno 7 ottobre 2015 12:09, giulianc51 <[hidden email]> ha scritto:
Il giorno Wed, 7 Oct 2015 11:33:17 +0200
Luca Lanteri <[hidden email]> ha scritto:

> Ciao a tutti,

ciao Luca,


> ho creato un modulo in python che contiene alcune mie funzioni ma non
> riesco ad importarlo nella console python di qgis.
> Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
> ........

> Qualcuno sa aiutarmi ?

non confermo:
a) creato un modulo pippo.py con una funzione lippo() come hai indicato
b) messo nella cartella ~/.qgis2/python/plugins
c) aperta la console python di qgis
d) caricato (senza errori) il modulo (*)
e) il comando pippo.lippo() genera l'output voluto :-)


> grazie mille
>
> Luca

ciao,
giuliano

(*) ti ricordo che con dir(pippo) puoi vedere le funzioni del modulo
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Giuliano Curti
Il giorno Wed, 7 Oct 2015 12:29:22 +0200
Luca Lanteri <[hidden email]> ha scritto:

ciao,

> .....
> ... preferirei che funzionasse tutto da una cartella dove sta il mio
> progetto ...

ah ah... non mi sembra l'avessi detto :-)


> immagino che esista una variabile con il percorso del progetto
> attuale di qgis. In questo modo potrei aggiungere
> sys.path.append("path del progetto") al mio script principale.
> Sapete come si chiama questa variabile ?

purtroppo no :-(

 
> grazie a tutti
> Luca

ciao,
giuliano

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Luigi Pirelli-2
In reply to this post by Luca Lanteri-2
QgsProject.instance().homePath()

che e' diversa da '' solo dopo aver caricato il progetto
Luigi Pirelli

**************************************************************************************************
* LinkedIn: https://www.linkedin.com/in/luigipirelli
* Elance: https://www.elance.com/s/edit/luigipirelli/
* GitHub: https://github.com/luipir
* Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
* Mastering QGIS:
https://www.packtpub.com/application-development/mastering-qgis
**************************************************************************************************


2015-10-07 12:29 GMT+02:00 Luca Lanteri <[hidden email]>:

> scusa Luca,
> riavviando qgis in effetti con sys.path.append(c:\path\) funziona tutto.
>
> Salvatore e Giuliano,
> inserendolo nella cartella .qgis 2 funziona tutto perfettamente anche a me
> preferirei che funzionasse tutto da una cartella dove sta il mio progetto
> Il  modulo infatti vorrei caricarlo anche da uno script python che deve
> essere portabile.
>
> immagino che esista una variabile con il percorso del progetto attuale di
> qgis. In questo modo potrei aggiungere  sys.path.append("path del progetto")
> al mio script principale.
> Sapete come si chiama questa variabile ?
>
> grazie a tutti
> Luca
>
>
> Il giorno 7 ottobre 2015 12:09, giulianc51 <[hidden email]> ha
> scritto:
>>
>> Il giorno Wed, 7 Oct 2015 11:33:17 +0200
>> Luca Lanteri <[hidden email]> ha scritto:
>>
>> > Ciao a tutti,
>>
>> ciao Luca,
>>
>>
>> > ho creato un modulo in python che contiene alcune mie funzioni ma non
>> > riesco ad importarlo nella console python di qgis.
>> > Sicuramente sto sbagliando qualcosa. Provo a riportare i passi fatti:
>> > ........
>>
>> > Qualcuno sa aiutarmi ?
>>
>> non confermo:
>> a) creato un modulo pippo.py con una funzione lippo() come hai indicato
>> b) messo nella cartella ~/.qgis2/python/plugins
>> c) aperta la console python di qgis
>> d) caricato (senza errori) il modulo (*)
>> e) il comando pippo.lippo() genera l'output voluto :-)
>>
>>
>> > grazie mille
>> >
>> > Luca
>>
>> ciao,
>> giuliano
>>
>> (*) ti ricordo che con dir(pippo) puoi vedere le funzioni del modulo
>> _______________________________________________
>> [hidden email]
>> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>> Questa e' una lista di discussione pubblica aperta a tutti.
>> I messaggi di questa lista non hanno relazione diretta con le posizioni
>> dell'Associazione GFOSS.it.
>> 786 iscritti al 30.9.2015
>
>
>
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 786 iscritti al 30.9.2015
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Salvatore Larosa
In reply to this post by Giuliano Curti
Ciao Giuliano,

2015-10-07 12:15 GMT+02:00 giulianc51 <[hidden email]>:
> Il giorno Wed, 7 Oct 2015 12:09:42 +0200
> Salvatore Larosa <[hidden email]> ha scritto:
>> ma sarà compilato automaticamente su qualsiasi progetto aperto....
>
> questo mi manca: vuoi/puoi approfondire o puoi darmi qualche link?

volevo semplicemente dire che il modulo sarà caricato all'avvio di
qualsiasi progetto e quindi
se Luca ha l'esigenza di caricare il modulo per un progetto specifico
tale soluzione non è perseguibile.
Mentre funziona benissimo utilizzando le macro (nella fattispecie
openProject()) in quanto le stesse sono salvate a livello di progetto.

Saluti,
-SL



--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Luca Lanteri-2
Grazie a tutti, siete stati risolutivi come al solito !

Approfitto della vostra pazienza per porvi ancora una domanda.
Come avrete capito in questi giorni sto sbattendo la testa con una funzione di QGIS che ritengo utilissima, cioè la possibilità di inserire codice python all'interno dei form personalizzati. 

Sono riuscito a realizzare quasi tutto quello che mi serviva ma sto impazzendo con due problemi:

1) in lista qgis mi hanno detto che l'utilizzo di variabili globali all'interno del form personalizzati può dare problemi: Così è in effetti, visto che, se le utilizzo, qgis va spesso in crash quando provo ad utilizzare il form. Ho riscritto tutto il mio codice senza variabili globali ma adesso, quando mi muovo tra i vari oggetti del form, spesso ho un errore che ho documentato qui [0]. Qualcuno si è imbattuto in qualcosa di simile ? E' forse colpa del mio codice scritto con i piedi ?

2) quando utilizzo i form partendo dalla tabella di qgis in modalità form (quindi con la possibilità di muovermi da un record all'altro dalla colonna di sinistra per intenderci), se associo una funzione ad un pulsante, questa viene lanciata n volte, dove n aumenta con il n° di record presenti in tabella [1].


grazie ancora
Luca



Il giorno 7 ottobre 2015 14:05, Salvatore Larosa <[hidden email]> ha scritto:
Ciao Giuliano,

2015-10-07 12:15 GMT+02:00 giulianc51 <[hidden email]>:
> Il giorno Wed, 7 Oct 2015 12:09:42 +0200
> Salvatore Larosa <[hidden email]> ha scritto:
>> ma sarà compilato automaticamente su qualsiasi progetto aperto....
>
> questo mi manca: vuoi/puoi approfondire o puoi darmi qualche link?

volevo semplicemente dire che il modulo sarà caricato all'avvio di
qualsiasi progetto e quindi
se Luca ha l'esigenza di caricare il modulo per un progetto specifico
tale soluzione non è perseguibile.
Mentre funziona benissimo utilizzando le macro (nella fattispecie
openProject()) in quanto le stesse sono salvate a livello di progetto.

Saluti,
-SL



--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015
Reply | Threaded
Open this post in threaded view
|

Re: QGIS e moduli python

Giuliano Curti
In reply to this post by Salvatore Larosa
Il giorno Wed, 7 Oct 2015 14:05:03 +0200
Salvatore Larosa <[hidden email]> ha scritto:

> Ciao Giuliano,

ciao Salvatore,


> 2015-10-07 12:15 GMT+02:00 giulianc51 <[hidden email]>:
> > Il giorno Wed, 7 Oct 2015 12:09:42 +0200
> > Salvatore Larosa <[hidden email]> ha scritto:
> >> ma sarà compilato automaticamente su qualsiasi progetto aperto....
> >
> > questo mi manca: vuoi/puoi approfondire o puoi darmi qualche link?
>
> volevo semplicemente dire che il modulo sarà caricato all'avvio di
> qualsiasi progetto e quindi
> se Luca ha l'esigenza di caricare il modulo per un progetto specifico
> tale soluzione non è perseguibile.

per una serie di motivi sui quali magari ti chiederò in futuro (hanno a
che fare con i signals e le connections) uso caricare e scaricare i
"miei" plugin appena prima e appena dopo l'uso :-) :-)


> Mentre funziona benissimo utilizzando le macro (nella fattispecie
> openProject()) in quanto le stesse sono salvate a livello di progetto.

le macro sono un topic che non ho ancora affrontato, grazie di avermelo
ricordato :-)

 
> Saluti,
> -SL

grazie, saluti,
giuliano


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
786 iscritti al 30.9.2015