Come descritto nella sezione 1.2, la compilazione e l'installazione di un modulo per la vostra distribuzione, usando Distutils, è composta di solito da un semplice comando:
python setup.py install
Su Unix, dovrete eseguire questo comando da una shell; su Windows, dovrete aprire una finestra di comando (``DOS box'') e farlo lì; su Mac OS, le cose sono un po' più complicate (vedete più avanti).
Dovreste sempre eseguire il comando setup dalla directory radice della vostra distribuzione, per esempio la sottodirectory di livello superiore dove il modulo sorgente della distribuzione vi è stato scompattato dentro. Per esempio, se avete appena scaricato un modulo sorgente per la vostra distribuzione foo-1.0.tar.gz all'interno di un sistema Unix, la cosa giusta da fare è:
gunzip -c foo-1.0.tar.gz | tar xf - # spacchetta nella directory cd foo-1.0 python setup.py install
Su Windows, avrete probabilmente scaricato il file foo-1.0.zip. Se avete scaricato il file archivio in C:\Temp, allora questo si spacchetterà in C:\Temp\foo-1.0; potete usare un programma grafico per file compressi (come Winzip) o un tool da riga di comando (come unzip o pkunzip) per scompattare l'archivio. Quindi, aprite un terminale (``DOS box''), ed eseguite:
cd c:\Temp\foo-1.0 python setup.py install
Su Mac OS 9, fate doppio click sullo script setup.py. Verrà
aperta una finestra di dialogo da dove potrete selezionare il
comando install
, quindi selezionate il bottone
run
che lancerà l'installazione della vostra
distribuzione. La finestra di dialogo viene costruita dinamicamente,
quindi vengono elencati tutti i comandi e le opzioni per la vostra
distribuzione.
Eseguendo setup.py install
compilerete ed installerete tutti
i moduli in una sola volta. Se preferite lavorare
in modo incrementale--utile specialmente se volete personalizzare
il processo di compilazione, o se le cose sono andate male--potete
usare lo script setup per eseguire un passaggio alla volta. Questo
aiuta particolarmente quando la compilazione e l'installazione viene
fatta da utenti diversi--per esempio, potreste voler costruire un
modulo per la vostra distribuzione e darlo ad un amministratore di
sistema per installarlo (o farlo da soli, con i privilegi di
super-utente). Potreste costruire tutto in una sola volta e
quindi installare tutto successivamente, invocando lo script
di installazione una seconda volta:
python setup.py build python setup.py install
Se quindi vi comporterete come abbiamo appena visto, verrete avvisati
che eseguendo il comando install
, prima verrà eseguito il
comando build
che, in questo caso, avviserà velocemente che
non c'è niente da fare finché il contenuto della directory
build non verrà aggiornato.
Potreste non avere bisogno di questa funzionalità, che comporta il dover interrompere spesso le proprie attività, se solitamente tutto quello che fate è installare moduli scaricati dalla rete, ma tutto questo è utile per molte altre sperimentazioni. Se volete distribuire i vostri moduli Python personali ed estensioni, potrete eseguire su di loro molti singoli comandi Distutils.
Come descritto in precedenza, il comando build
si incarica
di mettere i file da installare dentro una build directory.
Per definizione, questa è sotto la directory radice della
distribuzione build; se siete interessati eccessivamente
alla velocità, o se volete prendere l'albero sorgente originario,
potete cambiare la directory di compilazione con l'opzione
--build-base.
Per esempio:
python setup.py build --build-base=/tmp/pybuild/foo-1.0
(O potete rendere questo permanente con una direttiva nel vostro sistema o nel file di configurazione personale Distutils; vedete la sezione 5.) Normalmente, questo non è necessario.
Lo schema predefinito per l'albero di compilazione è come il seguente :
--- build/ --- lib/ o --- build/ --- lib.<plat>/ temp.<plat>/
dove <plat>
amplia una rapida descrizione della piattaforma
OS/hardware corrente e della versione di Python. La prima forma,
con una sola directory lib, viene usata per ``distribuzioni
pure dei moduli''--che sono distribuzioni di moduli che
includono solo moduli Python puri. Se una distribuzione di moduli
contiene qualsiasi estensione (moduli scritti in C/C++), allora viene
usata la seconda forma, con due directory <plat>
. In quel
caso, la directory temp.plat contiene i file
temporanei generati dal processo compile/link che non sono stati
veramente installati. In uno o nell'altro caso, la directory
lib (o lib.plat) contiene tutti i moduli
Python (Python puro ed estensioni) che verranno installati.
In futuro, molte directory verranno aggiunte per manipolare gli script Python, la documentazione, i binari eseguibili e qualsiasi cosa sia necessaria per svolgere l'installazione dei moduli Python e delle applicazioni.
Dopo l'esecuzione del comando build
(sia che lo eseguiate
esplicitamente o che il comando install
lo faccia per voi),
il lavoro del comando install
è relativamente semplice:
tutto quello che deve fare è copiare tutto sotto build/lib
(o build/lib.plat) nella directory che avete
scelto per l'installazione.
Se non scegliete una directory di installazione--per esempio, se
eseguite soltanto setup.py install
--allora il comando
install
installa nell'indirizzo convenzionale per i moduli
di terze parti di Python. Questo indirizzo varia a seconda della
piattaforma e da come compilerete autonomamente i moduli. Su Unix e
Mac OS, questo dipende anche dalla struttura del modulo, se ciò che
stiamo installando è Python puro o contiene estensioni (``non-pure''):
Piattaforma | Indirizzo per l'installazione predefinita | Valore predefinito | Note |
---|---|---|---|
Unix (puro) | prefix/lib/python2.0/site-packages | /usr/local/lib/python2.0/site-packages | (1) |
Unix (non puro) | exec-prefix/lib/python2.0/site-packages | /usr/local/lib/python2.0/site-packages | (1) |
Windows | prefix | C:\Python | (2) |
Mac OS (puro) | prefix:Lib:site-packages | Python:Lib:site-packages | |
Mac OS (non puro) | prefix:Lib:site-packages | Python:Lib:site-packages |
Note:
prefix ed exec-prefix rimangono per le directory
in cui viene installato Python e rappresentano il luogo dove trova le
sue librerie al momento dell'esecuzione. Sono sempre le stesse sotto
Windows e Mac OS e spesso sotto Unix. Potete trovare dove sono
nella vostra installazione Python, sia prefix che
exec-prefix, eseguendo Python in modalità interattiva e
digitando pochi semplici comandi. Sotto Unixdigitate semplicemente
python
al prompt della shell. Sotto Windows, scegliete
Avvio > Programmi > Python 2.1 > Python (riga di comando).
Sotto Mac OS 9, avvio PythonInterpreter.
Una volta che l'interprete è avviato, digitate il codice Python al
prompt. Per esempio, sul mio sistema Linux, io digito le tre
istruzioni mostrate sotto, e prendo l'output come mostrato, per
estrarre i miei prefix e exec-prefix:
Python 2.3.4 (#1, May 29 2004, 17:05:23) [GCC 3.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.prefix '/usr' >>> sys.exec_prefix '/usr'
Se non volete installare i moduli nella posizione predefinita, o se non avete i permessi per scriverci, allora avete bisogno di leggere dell'installazione alternativa nella sezione 3. Se volete personalizzare la vostra directory di installazione in modo più marcato, vedete la sezione 4 nell'installazione personalizzata.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.