Subsections


2 Installazione e compilazione standard

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).


2.1 Differenze tra le varie piattaforme

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.


2.2 Separare il lavoro da svolgere

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.


2.3 Come compilare il lavoro

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.


2.4 Come installare il lavoro

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:

(1)
La maggior parte delle distribuzioni Linux include Python come una parte standard del sistema, così prefix ed exec-prefix sono solitamente entrambi in /usr su Linux. Se compilerete da soli Python su Linux (o su un sistema Unix-like), i predefiniti prefix e exec-prefix sono /usr/local.
(2)
La directory d'installazione predefinita in Windows era C:\Program Files\Python per Python 1.6a1, 1.5.2, e precedenti.

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.