giovedì 23 luglio 2009

Installare script python con setup.py

Il modo più pratico per distribuire uno script python è sfruttare le potenzialità stesse del linguaggio e creare un file setup.py che permetta l'installazione.

Per gli anglofoni consiglio vivamente di andarsi guardare la documentazione ufficiale di python al riguardo: qui e qui.

Creare il file è molto semplice, basta creare un nuovo file chiamato setup.py e inserire le seguenti righe:
#!/usr/bin/env python

from distutils.core import setup

setup(name='Distutils',
version='1.0',
description='Python Distribution Utilities',
author='Greg Ward',
author_email='gward@python.net',
url='http://www.python.org/sigs/distutils-sig/',
packages=['distutils', 'distutils.command'],
)


La prima riga permette l'esecuzione del file anche senza richiamarlo con il prefisso python nel terminale.
La seconda importa la funzione setup dal modulo distutils (che dovete quindi avere installato).
Infine si richiama la funzione setup con tutti i parametri necessari.

I campi importanti da considerare sono:

  • name - nome dello script da installare
  • version - versione dello script
  • description - Una rapida descrizione dello script
  • author - autore del programma
  • author_email - email di contatto per l'autore
  • url - eventuale sito da cui scaricare lo script

Questi erano i campi necessari per la descrizione del programma da installare, quello che segue sono i parametri leggermente più tecnici che servono al sistema per sapere cosa installare.

  • packages - la lista dei packages che compongono lo script, per ogni package che viene aggiunto, ade esempio packages=['packagename'] setup presume l'esistenza di un file packagename/__init__.py relativo alla cartella dove risiede lo script.
  • py_modules - se lo script non dovesse avere un set di packages, ma soltanto qualche modulo, magari nella stessa cartella dello script principale, vanno indicati usando questo parametro.
    es. py_modules = ['mod1', 'pkg.mod2']
  • scripts - indicano gli script (ovvero quei file che hanno un # e python nella prima riga del file) che vanno installati nella cartella /usr/bin del sistema per essere eseguiti facilmente dalla riga di comando.
    es. scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
  • package_data - se fosse necessario aggiungere altri file relativi a un package (ad esempio immagini o file di supporto), si utilizza questa funzione che richiede il nome del package a cui ci si sta riferendo e il percorso relativo al package dove trovare i dati necessari. I packages devono essere stati inclusi in precedenza con il parametro packages.
    es. package_data={'mypkg': ['data/*.dat']}
  • data_files - se fosse necessario aggiungere altri file al programma, come ad esempio file di configurazione o di dati, si utilizza questa funzione che rihiede l'elenco delle coppie (cartella, file) dove la cartella indica il percorso dove installare e file la lista di file da installare nella cartella.
    es. data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
    ('config', ['cfg/data.cfg']),
    ('/etc/init.d', ['init-script'])]


Queste sono solo alcune delle opzioni disponibili per la creazione di un file di setup per python, a mio parere le più utili.
Per informazioni più approfondite e dettagliate vi invito a consultare le guide ufficiali.

Read more!

martedì 21 luglio 2009

video2psp - Convert your videos for your PSP



This is a little script I created a while ago, which allows you to convert videos, to watch them on the PSP, using ffmpeg or mencoder.

All the programs to convert videos require you to select the file you want to convert then set the conversion parameters with various listboxes. A lot of clicks for my tastes, non mentioning that not all of them allow you to setup batch conversions, which is bad if you have a lot of videos to put on the PSP.

Things work differently here.

First thing you notica is the lack of a graphical interface, this was necessary to grant greater efficiency, in fact you just need to open a terminal in the right folder and type video2psp * to convert all the videos in the folder.

Let's see how it works:
Once installed, all you have to do in open a terminal, type video2psp and add all the videos you want to convert.
You can add videos in 3 ways:
- put the list of files that you want to convert from the current folder,
es. $ video2psp video1.avi video2.avi video3.avi

- use the * to add multiple files at once,
es. $ video2psp video*

- or you can just drag and drop the videos you want to convert on the open terminal window and the computer will put the absolute path to the file, this is practical if you want to convert a lot files from different folders.
es. $ video2psp '/home/user/Videos/video1.avi' '/home/user/Videos/video2.avi' '/home/user/Videos/video3.avi'

Once you selected the files a quick multiple choice menu will allow you to select conversion parameters.



Requirements:
- The script is written in python, so you will need to have it installed.
- Conversion in MPEG4/SP will work out-of-the-box with ffmpeg and mencoder packaged for ubuntu, but for H264/AVC conversion you will need to recompile ffmpeg.

The program is available for download as a tar.gz archive or as a deb package for ubuntu and debian, if you install it with the deb package the system will take care of all dependencies automatically.

Read more!

lunedì 20 luglio 2009

video2psp - Converti i tuoi video per la tua PSP



Questo è un piccolo script che ho creato tempo fa con cui si possono facilmente convertire video, per vederli sulla PSP, usando ffmpeg o mencoder.

Tutti i programmi per convertire filmati richiedono di selezionare il file che si vuole convertire e poi impostare i parametri di conversione con vari menù a tendina. Un sacco di click per i miei gusti, senza contare che non tutti permettono di impostare conversioni in batch cosa seccante se si hanno numerosi filmati da convertire.

Qui le cose funzionano diversamente.

Prima cosa che si nota è la mancanza di una interfaccia grafica, cosa necessaria per garantire una maggior efficienza, infatti basta aprire un terminale nella cartella giusta e dare video2psp * per convertire tutti i video della cartella.

Vediamo il funzionamento nei particolari:
Una volta installato, quello che basta fare è aprire un terminale scrivere video2psp e aggiungere dietro i video che si vogliono convertire.
Per aggiungere i video possiamo utilizzare 3 metodi,
- possiamo mettere l'elenco dei file che vogliamo convertire nella cartella corrente,
es. $ video2psp video1.avi video2.avi video3.avi

- possiamo utilizzare la * per aggiungere molti file in una volta,
es. $ video2psp video*

- oppure possiamo trascinare i file sulla finestra del terminale e il pc si occuperà di aggiungere il percorso completo ai file, molto utile se si vogliono convertire insieme molti video da diverse cartelle.
es. $ video2psp '/home/user/Videos/video1.avi' '/home/user/Videos/video2.avi' '/home/user/Videos/video3.avi'

Una volta selezionati i file un rapido menù a scelta rapida permette di selezionare le opzioni per la conversione di tutti i file.



Requisiti:
- Lo script è scritto un python, quindi sarà necessario averlo installato.
- La conversione in MPEG4/SP può essere effettuata subito con ffmpeg e mencoder pacchettizzati per ubuntu, per la conversione in H264/AVC sarà necessario ricompilare ffmpeg.

Il programma è disponibile per il download come archivio tar.gz o come pacchetto deb per ubuntu o debian, installandolo tramite deb si installeranno automaticamente tutti i pacchetti necessari.

Read more!