Come controllare dipendenze in Python

November 19

Durante lo sviluppo di programmi Python, diventa spesso necessario per garantire che più moduli o basi di codice vengono compilati insieme. Questi moduli possono condividere funzionalità, oppure definire codice utilizzato da altri programmi. Si imposta uno script Python "setup" per gestire questi progetti: Quando viene eseguito il programma, lo script di installazione indica all'interprete quali file sono necessari. Utilizzando la funzione "setup" nel modulo "distutils", è possibile creare uno script Python che controlla le dipendenze richiedendo alcune librerie prima di un codice Python viene eseguito.

istruzione

1 Inizia lo script di installazione importando il modulo "setup". L'importazione del modulo di impostazione all'inizio dello script consente di definire questo script come script di installazione piuttosto che un programma regolare:

! / Usr / bin / python

da distutils.core configurazione import

2 argomenti di alimentazione per lo script di installazione per specificare i parametri di compilazione per lo script. Questi argomenti definiscono il nome, la versione e ideatore del progetto, così come dare una descrizione:

setup (name = 'Project',

version='1.0',
description='Test Project',
author='Bob Smith')

3 Includere il "richiede" argomento nella funzione di dare mandato alla compilazione di alcuni pacchetti richiesti dal progetto corrente. L'argomento richiede controllerà per i pacchetti specificati e genera un errore se questi pacchetti non fanno parte del sistema di Python corrente:

setup (name = 'Project',

version='1.0',
description='Test Project',
author='Bob Smith',
requires={'time', 'mymodule'})

4 Controllare per i moduli all'interno del codice. Se si desidera verificare la presenza di dipendenze, mentre esecuzione di uno script, è possibile utilizzare il "imp" biblioteca e dei suoi Stati funzione "find_module" per determinare se esiste il modulo. Questa opzione offre più facile il controllo delle dipendenze per gli script più piccoli:

! / Usr / bin / python

importazione imp

provare:
imp.find_module ( 'tempo')
tranne ImportError:
print 'No Module! Uscita ... '