一連のスクリプトを含むmypackageというPythonパッケージがあるとします。mypackageがsite-packagesディレクトリに入ると、ユーザーは通常どおり、mypackage内のさまざまなPythonファイルをPythonのmypackage.submodule1、mypackage.submodule2として参照できます。ただし、これらの一部は、コマンドラインから呼び出すことを目的としたスクリプトです。たとえば、submodule1には、次のものがあります。
== mypackage/submodule1.py ==
if __name__ == '__main__':
main()
def main():
# parse command line options here, do stuff
「mypackage」がパスに含まれると、ユーザーがこれらのサブモジュールをコマンドラインスクリプトとしてクリーンに使用できるように、mypackageを適切に配布/パッケージ化するにはどうすればよいですか?私はあなたができると思ったでしょう:
python mypackage.submodule1.py arg1 arg2 ...
しかし、この構文は無効です。言い換えると、実際の「mypackage」ディレクトリをPYTHONPATHに含めることなく、ユーザーがパッケージのサブモジュールをPyからインポートするのではなく、スクリプトとして参照するにはどうすればよいでしょうか。(「mypackage」を含むsite-packagesなどのトップレベルディレクトリのみがPYTHONPATHに含まれている必要があります。)
ありがとう。