21

I'm learning about Python Packages from Learn Python the Hard Way and one of the exercises it says:

Put a script in the bin directory that you can run

To me, it seems kind of vague. I'm not exactly sure what kind of scripts would go into the bin folder. The Hitchhiker's Guide to Packaging says

put into bin any scripts you’ve written that use your package and which you think would be useful for your users. If you don’t have any, then remove the bin directory.

But I'm still left wondering what kind of script would go in there. So, I know its may sound like a dumb question, but can someone give me an example of when, and why one would put "a script" in their package's bin folder?

4

2 に答える 2

22

私はつい最近、LPTHW で Ex46 を通過しました。あなたと同じように、私はスクリプトに戸惑いました。他の答えがあなたにとって高度すぎる場合に備えて、単純な「hello world」スクリプトを入れただけです。

#!/usr/bin/env python

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

私はそのファイルに testscript3.py という名前を付けました (* 注、システム コマンドのように見せたい実際のスクリプトである場合は、ファイル名拡張子 .py を省略した方が便利であることを後で知りました)。

私のファイルtest3.pyは次のようでした:

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

このプロセスを機能させようとしているときに私が学んだいくつかの初心者のことを次に示します。

  • #! シンボルはシェバンと発音されることもあり、簡単な説明は、その行のコマンドがシェルに python を使用してスクリプトを実行するように指示することです。「.py」ファイル名拡張子を省略した場合、スクリプトのユーザーは、スクリプトを実行するために必要なインタープリターを気にする必要はありません。ウィキペディアのシバンの記事を参照してください。

  • 次のコマンドを実行して、ディストリビューションをパッケージ化しました。

    python setup.py sdist

  • その後、実行してパッケージとスクリプトをインストールできました

    sudo pip install test3-0.1.tar.gz

  • 1 つ心配だったのは、スクリプト ファイルのアクセス許可です。しかし、パッケージング時に distutils がこれを処理していることに気付きました (モードを 755 などに変更)。

この例のプロジェクト全体は github にあります。

于 2012-07-31T19:04:25.503 に答える
2

たとえば、Djangoのプロジェクト作成Scrapyのプロジェクト作成、django-admin.py、scrapyは、どちらもbinフォルダー内のスクリプトです。

ほぼPythonベースのツールをチェックすることで、さらに多くの例を得ることができます。

于 2012-05-29T03:15:49.120 に答える