Qgis e moduli di python

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

Re: Qgis e moduli di python

Alessandro Pasotti
In data lunedì 27 giugno 2011 17:13:57, Sandro Santilli ha scritto:
: > On Mon, Jun 27, 2011 at 04:39:24PM +0200, Paolo Corti wrote:

> > Ciao Sandro
> >
> > 2011/6/27 Sandro Santilli <[hidden email]>:
> > > Temo che questo genere di cose pero' si vogliano fare solo
> > > con l'ausilio del sistema operativo, perche' i moduli python
> > > si vorranno installare system-wide (se possibile) e l'utente
> > > che apre qgis NON e' (si spera) amministratore di sistema.
> >
> > Un modo ottimo di risolvere questi problemi in Python puo' essere
> > quello di usare virtualenv [0] che consente di
> > creare ambienti Python isolati da tutto il resto.
>
> ...
>
> > [0] http://www.virtualenv.org/
>
> Interessante alternativa. Certo in questo modo dovrebbe essere
> piu' semplice, anche se non necessariamente raccomandabile.
>
> L'idea dell'interfaccia standard (il "plugin helper")
> consentirebbe l'una o l'altra cosa (o altro ancora), con qualche
> tipo di configurazione. La configurazione di quale helper
> utilizzare potrebbe essere esposta tramite interfaccia grafica
> di qgis (plugin install command, con le keyword substitution).
>
> Come dovrebbe essere questa interfaccia ?
> Ne esiste gia' una ? (easy_install)

mumble mumble... ... ecco qualche pensierino sul tema.

easy_install verrà probabilmente sostituito da "pip"

http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install

però da quanto ho capito, easy_install viene installato automaticamente con il
pacchetto setuptools, mentre pip lo devi installare a mano (o con
easy_install).

Comunque, questo non è importante, l'importante è capire se (per tutte le
piattaforme), dando per scontato che almeno l'interprete python sia installato
(altrimenti ha poco senso parlare di plugin python), su quali tool possiamo
contare per un'installazione automatizzata delle dipendenze python ?

Purtroppo conosco una sola piattaforma (Linux) quindi non ho idea di come
possa funzionare sulle altre, ma su Linux bisognerebbe installare nell'ordine:

- virtualenv (a livello di sistema, credo)
- easy_install o pip (magari setuptools viene installato di default?)
- le dipendenze del caso

Io credo che un grosso passo avanti sarebbe già quello di includere le
istruzioni "import" in blocchi try/except e stampare un sano messaggio su come
risolvere il problema in caso di dipendenze mancanti, al momento la situazione
è un orribile traceback, veramente disorientante per chi non lo sa leggere.

Per un'installazione automatizzata, si potrebbe pensare ad includere nella
dichiarazione del plugin l'elenco delle dipendenze (in formato
pip/easy_install compatibile) e procedere al caricamento in caso manchino.

C'è anche questo:
http://packages.python.org/distribute/setuptools.html#using-find-packages

... promette bene:

Automatically find/download/install/upgrade dependencies at build time using
the EasyInstall tool, which supports downloading via HTTP, FTP, Subversion,
and SourceForge, and automatically scans web pages linked from PyPI to find
download links. (It’s the closest thing to CPAN currently available for
Python.)

Forse il problema principale è che i plugin al momento vengono semplicemente
scaricati e scompattati, non viene lanciato nessuno script di setup, che
sarebbe fondamentale per qualsiasi installazione di dipendenze.

Vedi lo standard:
http://docs.python.org/install/index.html

Ultimo problemuccio: alcuni pacchetti python contengono pezzi di codice in
altri linguaggi (tipicamente in C), quindi il processo di installazione
standard "python setup.py install" prevede compilazione, che a sua volta
prevede magari che siano già installati gli header e/o altre librerie.

Insomma, un sistema standardizzato per dare utili istruzioni all'utente in
caso di dipendenze mancanti costerebbe poco sforzo e darebbe un grande
risultato, un sistema automatico che funzioni magari nel 60% dei casi sarebbe
già più laborioso, un sistema automatico che funzioni sempre, credo che sia
quasi impossibile.


Altre idee ?


--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3:  www.itopen.it
Linux User# 167502
_______________________________________________
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.
518 iscritti al 3.6.2011
12