[Python] Usate make?

Matteo Acerbi matteo.acerbi a gmail.com
Mar 24 Giu 2008 18:01:35 CEST


On Tue, Jun 24, 2008 at 2:42 PM, Giovanni Marco Dall'Olio
<dalloliogm a gmail.com> wrote:
> [..]
>
> Lasciatemi fare la domanda ingenua... ma make é molto utilizzato anche per gestire dei lavori in python? Voi ne fate uso? E se no, come fate per gestire situazioni come questa?

L'anno scorso io e una mia compagna di corso (ing. informatica,
Bologna) lavorammo ad un progettino di elaborazione dati da
microarray: per gestire la pipeline dei job scrissi uno script python
molto rude e specifico che prevedeva elaborazioni compiute in diversi
linguaggi (R, C, Python).

Utilizzai Python per questo scopo unicamente per fare prima e lasciare
del codice comunque decente a chi avrebbe potuto prendere in mano il
progetto dopo di noi (temo nessuno :-) ).

Forse usare Make avrebbe potuto favorire un approccio più dichiarativo
e sopportare meglio eventuali incrementi successivi di complessità: al
tempo avevo considerato l'ipotesi ma l'avevo poi scartata per fretta e
per evitare di aggiungere un altro linguaggio all'insieme di
competenze necessarie a comprendere cosa avessimo fatto. :-)

Avevo anche cercato di capire quali fossero modi più appropriati di
affrontare questo problema (forse software tipo
http://taverna.sourceforge.net/ ?), ma non provai minimamente a
studiarli: il nostro programma doveva essere più rapido che
flessibile, e adatto all'esecuzione batch (scartammo pregiudizialmente
qualsiasi finestra :-) ).

La mia esperienza nel mondo della bioinformatica è comunque terminata
con quel progetto, per cui non ho idea di come realmente sia meglio
fare queste cose (so solo che non trovo buoni motivi per usare Perl
come pare vada ancora di moda :-) ).

> Ho sentito dire che si può anche usare anche distutils.core.setup (il tipico python setup.py), ma per il momento non ci ho guardato, preferisco capire make. Ci sono dei vantaggi ad usare questo modulo? Ci sono grosse differenze?

Non conosco bene le distutils ma se la tua finalità non è quella di
distribuire un pacchetto Python installabile ma piuttosto un albero di
sorgenti io preferirei make, sia per lanciare i job che per compilare
eventuali programmi C (o altro linguaggio compilato) da cui essi
dipendono.

Mi interesserebbe sapere se altri hanno altre idee in proposito, però.

Ciao,
Matteo


Maggiori informazioni sulla lista Python