Se l'intera applicazione si inserisce in un singolo file, questa è la soluzione più semplice.
Altrimenti, è meglio creare un pacchetto completo. Quando crei un file setup.py
basato su setuptools, puoi definire vari punti di inserimento che dovrebbe essere installato come script. Tuttavia, questi punti di accesso si riferiscono a funzioni, non a file.
Invece di eseguire uno script con Python ( python path/to/script.py args...
), puoi anche eseguire un modulo o un pacchetto: python -m example.package args...
. Per i moduli (ad esempio i file Python), devi eseguire il controllo di if __name__ == '__main__'
e inviarlo alla tua funzione principale. Per i pacchetti (cioè le directory con un file __init__.py
), devi creare un file __main__.py
come punto di ingresso. Ha senso inserire l'argomento analizzando & codice di interfaccia utente qui.
Questo è particolarmente sensibile quando si aggiunge un'interfaccia a riga di comando a una libreria esistente. Tuttavia, è spesso elegante scrivere il comportamento centrale di un'applicazione come libreria e quindi avvolgere quella libreria con una semplice interfaccia utente. In particolare, questa architettura stratificata rende più semplice il test delle unità.