9.1 distutils.core -- Funzionalità del core di Distutils

Il modulo distutils.core è il solo modulo che deve essere installato per usare le Distutils. Fornisce la funzione setup() (che viene richiamata dallo script di setup). Indirettamente fornisce le classi distutils.dist.Distribution e distutils.cmd.Command.

setup( arguments)
La funzione di base tuttofare che svolge quasi ogni cosa che gli si possa chiedere attraverso un metodo Distutils. Si veda XXXXX.

La funzione setup() richiede un gran numero di argomenti. Questi vengono mostrati nella seguente tavola.

nome argomento  valore  tipo 
name Il nome del package come stringa
version Il numero di versione del package Si veda distutils.version
description Una singola riga che descrive il package come stringa
long_description Un'estesa descrizione del package come stringa
author Il nome dell'autore del package come stringa
author_email L'indirizzo email dell'autore del package come stringa
maintainer Il nome del manutentore corrente, se differisce da quello dell'autore come stringa
maintainer_email Il nome del manutentore corrente, se differisce da quello dell'autore  
url La URL per il package (homepage) come URL
download_url L'URL da dove scaricare il package come URL
packages Un elenco di package Python che distutils può manipolare come lista di stringhe
py_modules Un elenco di moduli Python che distutils può manipolare come lista di stringhe
scripts Un elenco di script separati di file per compilare ed installare come lista di stringhe
ext_modules Un elenco di estensioni Python per compilare Una lista di istanze di distutils.core.Extension
classifiers Un elenco di categorie Trove per il package XXX link ad una migliore definizione
distclass La classe Distribution da usare Una sottoclasse di distutils.core.Distribution
script_name Il nome dello script di setup setup.py - predefinito a sys.argv[0] come stringa
script_args Argomenti da fornire allo script di setup come lista di stringhe
options Opzioni predefinite per lo script di setup come stringa
license la licenza relativa al package  
keywords Meta-data descrittivi. Si veda la PEP 314  
platforms    
cmdclass Una mappa di nomi di comandi per sottoclassi Command come un dizionario

run_setup( script_name[, script_args=None, stop_after='run'])
Esegue uno script di setup in una specie di ambiente controllato e restituisce l'istanza distutils.dist.Distribution che gestisce le operazioni. Questo è utile se avete bisogno di estrarre i meta-data della distribuzione. (Passati come argomenti a parola chiave da script a setup()), o il contenuto dei file di configurazione o da riga di comando.

script_name è un file che verrà eseguito dalla funzione execfile(), sys.argv[0] verrà rimpiazzato con script per la durata della chiamata. script_args è una lista di stringhe; se indicato, sys.argv[1:] verrà rimpiazzato da script_args per la durata della chiamata.

stop_after dice a setup() quando fermare il processo; valori possibili:

valore  descrizione 
init Lo stop dopo l'istanza Distribution viene creata e popolata con argomenti a parola chiave per setup()
config Lo stop dopo i file di configurazione che devono essere analizzati (i dati verranno memorizzati nell'istanza Distribution).
commandline Lo stop dopo la riga di comando (sys.argv[1:] o script_args) verrà analizzata (i dati verranno memorizzati nell'istanza Distribution).
run Lo stop dopo che sono stati eseguiti tutti i comandi (come se fosse stato chiamato setup() nella solita maniera). Ovvero con i valori predefiniti.

In aggiunta, il modulo distutils.core propone un certo numero di classi che si trovano altrove.

Segue una breve descrizione di ognuna di queste, ma si faccia riferimento ai moduli più importanti per un riferimento completo.

class Extension

Le classi di estensione descrivono un singolo modulo C o C++ in uno script di setup. Accetta i seguenti argomenti a parola chiave nel suo costruttore

nome dell'argomento  valore  tipo 
name Il nome completo dell'estensione, incluso ogni packages -- ad esempio non un nome di un file od un percorso, ma un nome puntato Python. stringa
sources Un elenco di nomi di file sorgenti, relativi alla distribuzione principale (dove risiede il file script di setup), nella forma Unix (separata da delle barre oblique) per portabilità. I file sorgenti possono essere in C, C++, SWIG (.i), file specifici per la piattaforma o di qualsiasi altro tipo riconosciuto dal comando build_ext come sorgente di estensione per Python. stringa
include_dirs Un elenco di directory dove ricercare file d'intestazione per C/C++ (per portabilità nella forma Unix). stringa
define_macros Un elenco di macro da definire; ogni macro viene definita mediante una tupla composta da due elementi, dove la definizione di 'value' può essere rappresentata con una stringa di definizione, oppure una stringa insieme ad un None, quindi senza un particolare valore (equivalente a #define FOO nel sorgente o -DFOO da riga di comando del compilatore C su Unix) (stringa,stringa) tupla o (nome, None).
undef_macros Un elenco di macro non definibili esplicitamente. stringa
library_dirs Un elenco di directory dove ricercare librerie C/C++ al momento del link. stringa
libraries un elenco di nomi di librerie (non nomi di file o percorsi) in previsione del link. stringa
runtime_library_dirs Un elenco di directory dove ricercare file o librerie C/C++ al momento dell'esecuzione (per estensioni condivise, questo avviene quando l'estensione viene caricata). stringa
extra_objects Un elenco di file extra di cui dovrà essere effettuato il link (come oggetti file non implicati in 'sorgenti', librerie statiche che dovranno essere esplicitamente specificate, file binari di risorse, etc.). stringa
extra_compile_args Ogni altra informazione extra, specifica per la piattaforma o per la compilazione, da usare nel file sorgente con altri 'sorgenti'. Per piattaforme e compilatori di file sorgenti, dove ha senso usare la riga di comando, queste informazioni sono sostanzialmente argomenti da riga di comando, ma per altre piattaforme possono non avere significato. stringa
extra_link_args Ogni altra informazione extra, specifica per la piattaforma, da usare quando avviene il linkaggio degli oggetti file insieme alla realizzazione delle estensioni (o per la realizzazione di un nuovo interprete Python statico). Un'interpretazione simile a quella per 'extra_compile_args'. stringa
export_symbols Un elenco di simboli che dovranno essere esportati da estensioni condivise. Non sfruttabile su tutte le piattaforme e generalmente non necessario per estensioni python che solitamente esportano esattamente un simbolo: init + nome_estensione. stringa
depends Un elenco di file da cui dipendono le estensioni. stringa
language Estensioni del linguaggio (come 'c', 'c++', 'objc'). Se non fornite, verranno rilevate dall'estensione sorgente. stringa

class Command
Una classe Command (o piuttosto un'istanza di una sua sottoclasse) implementa un singolo comando DistUtils.

class Distribution
Una Distribution descrive come costruire, installare ed impacchettare un package di software Python.

Si veda la funzione setup() per una lista di argomenti a parola chiave accettati dal costruttore di Distribution. setup() crea un'istanza di Distribution.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.