2012-05-29 4 views
16

Ich lerne über Python-Pakete von Lernen Python auf die harte Tour und eine der Übungen heißt es:Welche Skripte würden in einen bin-Ordner eines Python-Pakets gehen?

ein Skript im Verzeichnis bin setzen, die Sie

Für mich ist es laufen kann, scheint irgendwie vage. Ich bin mir nicht sicher, welche Art von Skripten in den bin-Ordner gehen würde. The Hitchhiker's Guide to Packaging sagt

in bin alle Skripte, die Sie geschrieben haben, die Ihr Paket verwenden und was Sie denken, wäre nützlich für Ihre Benutzer. Wenn Sie keine haben, entfernen Sie das Verzeichnis bin.

Aber ich frage mich immer noch, welche Art von Skript würde dort hineingehen. Ich weiß, dass es sich vielleicht wie eine dumme Frage anhört, aber kann mir jemand ein Beispiel geben, wann und warum man "ein Skript" in den bin-Ordner des Pakets schreiben würde?

Antwort

20

Ich bin gerade erst durch Ex46 in LPTHW selbst gekommen. Wie du, war ich von den Skripten verwirrt. Für den Fall, war die andere Antwort für Sie zu weit fortgeschritten, ich habe gerade am Ende in einem einfachen „Hallo Welt“ Skript setzen:

#!/usr/bin/env python 

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

nannte ich diese Datei testscript3.py (* Hinweis erfuhr ich später, dass es sein würde, bequemer, die Py Dateinamenerweiterung wegzulassen, wenn es ein echtes Skript waren, dass ich wie ein Systembefehl)

Meine Datei test3.py war wie so scheinen wollte:

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

Hier einige Neuling Dinge dass ich gelernt habe, während ich versuchte, diesen Prozess zum Laufen zu bringen:

  • Die #! Symbol wird manchmal Shebang ausgesprochen und die einfache Erklärung ist, dass der Befehl in dieser Zeile die Shell anweist, Python zu verwenden, um das Skript auszuführen. Wenn Sie die Dateinamenerweiterung ".py" nicht verwenden, muss sich der Benutzer des Skripts nicht darum kümmern, welcher Interpreter zum Ausführen des Skripts benötigt wird. Siehe wikipedia shebang article.

  • lief ich den folgenden Befehl, um die Verteilung zu verpacken:

    python setup.py Sdist

  • Danach tun, konnte ich das Paket und Skript installieren, indem

    sudo pip läuft install test3-0.1.tar.gz

  • Eine Sache, um die ich mir Sorgen machte, waren Berechtigungen für die Skriptdatei. Allerdings habe ich bemerkt, dass disttitils beim Verpacken dafür gesorgt hat (geänderter Modus auf 755 oder was auch immer).

Sie können meine whole project for this example on github finden.

+1

+1 für den Neuling Abschnitt – Deepend

+0

sehr nett. danke für das Teilen. – MikeiLL