2012-05-29 12 views
16

Sto imparando su pacchetti di Python dalla Imparare Python the Hard Way e uno degli esercizi si dice:Quali script andrebbero in una cartella bin di un pacchetto Python?

Mettere uno script nella directory bin che è possibile eseguire

Per me, sembra un po 'vago. Non sono esattamente sicuro di quale tipo di script andrebbe nella cartella bin. The Hitchhiker's Guide to Packaging dice

messo in bin qualsiasi script che hai scritto che utilizzano il pacchetto e che si pensa possa essere utile per gli utenti. Se non ne hai, rimuovi la directory bin.

Ma mi resta ancora da chiedermi che tipo di script andrebbe lì. Quindi, so che potrebbe sembrare una domanda stupida, ma qualcuno può darmi un esempio di quando e perché si dovrebbe inserire "uno script" nella cartella bin del loro pacchetto?

risposta

20

Ho da poco passato Ex46 in LPTHW da solo. Come te, ero confuso dagli script. Nel caso in cui l'altra risposta era troppo avanzato per te, ho finito solo mettendo in un semplice "ciao mondo" script:

#!/usr/bin/env python 

from test3 import printstring 
printstring.printstring("test script working") 
print "test over" 

ho chiamato quel file testscript3.py (* Nota, ho appreso in seguito che sarebbe più conveniente di lasciare fuori l'estensione del file .py se si trattasse di un vero e proprio script che volevo sembrare un comando di sistema)

mio test3.py file è stato in questo modo:

def printstring(s='you did not provide string'): 
    print s 

Ecco alcune cose newbie che ho imparato mentre cercavo di far funzionare questo processo:

  • Il #! il simbolo è a volte pronunciato shebang e la semplice spiegazione è che il comando su quella linea dice alla shell di usare python per eseguire lo script. Se si omette l'estensione del file ".py", l'utente dello script non deve preoccuparsi di quale interprete è necessario per eseguire lo script. Vedi wikipedia shebang article.

  • Ho eseguito il seguente comando per confezionare la distribuzione:

    python setup.py sdist

  • Dopo aver fatto questo, sono stato in grado di installare il pacchetto e lo script eseguendo

    sudo pip installa test3-0.1.tar.gz

  • Una cosa di cui mi preoccupavo erano le autorizzazioni sul file di script. Tuttavia, ho notato che le distutils si sono occupate di ciò durante il packaging (modalità modificata a 755 o qualsiasi altra cosa).

È possibile trovare il mio whole project for this example on github.

+1

+1 per la sezione newbie – Deepend

+0

molto bella. grazie per la condivisione. – MikeiLL

Problemi correlati