2009-07-12 9 views
28

Ho creato uno script python che deve essere utilizzato dalla riga di comando. Come faccio a confezionarlo? Questo è il mio primo pacchetto Python e ho letto un po 'di setuptools, ma non sono ancora sicuro del modo migliore per farlo.Come impacchettare una riga di comando Script Python


Soluzione

ho finito per usare setup.py con le configurazioni tasti indicate qui di seguito:

setup(
.... 
    entry_points=""" 
[console_scripts] 
mycommand = mypackage.mymodule:main 
""", 
.... 
) 

Ecco una buona example nel contesto.

+0

Quale piattaforma (s) si sta distribuendo su? – ChristopheD

+0

Idealmente, * nix o windows. – Zach

risposta

3

@ Zach, dato il tuo chiarimento nel tuo commento alla risposta di @ soulmerge, sembra che quello che ti serve sia scrivere un setup.py come da istruzioni riguardanti lo distutils - here in particolare è come ti registri su pypi, e here su come caricare su pypi una volta che vi siete registrati - e possibilmente (se avete bisogno di qualche funzionalità extra per quello che le distutils forniscono da soli) aggiungete setuptools, di cui easy_install fa parte, tramite le istruzioni here.

+0

Questa risposta, per fortuna, è un po 'antiquata. Una buona fonte di informazioni ora è https://packaging.python.org/en/latest/, così come l'articolo che ho indicato nella mia risposta. –

2

Cosa intendi per confezione? Se si tratta di un singolo script da eseguire su una scatola che ha già python installato, è sufficiente inserire un shebang nella prima riga del file e il gioco è fatto.

Se si desidera che venga eseguito in Windows o in una casella senza python, tuttavia, sarà necessario qualcosa di esterno, ad esempio pyinstaller.

Se la tua domanda riguarda dove mettere i file di configurazione/dati, dovrai lavorare in modo indipendente dalla piattaforma (come scrivere nello registry o nello home folder), per quanto ne so.

+0

Consiste di due file python.Voglio comprarlo per essere distribuito su PiPy, per esempio, e installato con easy_install. – Zach

4

Invece di utilizzare setuptools modo non standard di procedere, è possibile invocare direttamente sulla funzione distutils di installazione, utilizzando l'argomento scripts, come detto qui: http://docs.python.org/distutils/setupscript.html#installing-scripts

from distutils import setup 
setup(
    ..., 
    scripts=['path/to/your/script',], 
    ... 
) 

Esso permette di rimanere compatibile a) con tutte le versioni python eb) non dover fare affidamento su setuptools come dipendenza esterna.

1

Il mese scorso, ho scritto un articolo rispondendo esattamente alla tua domanda. Lo si può trovare qui: http://gehrcke.de/2014/02/distributing-a-python-command-line-application/

C'è, sto utilizzando solo metodi attualmente raccomandati (spago, setuptools puri invece di distutils, la chiave console_scripts nel dizionario entry_points, ...), che opera per Python 2 e 3.

0

Per coloro che sono principianti in Python Packaging, suggerisco di leggere questo Python Packaging Tutorial.

Nota circa il tutorial:

In questo momento, questa documentazione si concentra su Python 2.x solo, e potrebbe non essere applicabili a pacchetti mirati per Python 3.x

Problemi correlati