それらはすべて基本的に同じことを意味し、Python コードを含むファイルまたはファイルのセットであり、Python はそれらの区別を透過的に行うため、重要性が低くなります。しかし、それらは少し異なる意味を持っています。
「スクリプト」は主に実行されることを意図した .py ファイルであり、「ライブラリ」は主に別のスクリプトによってインポートされることを意図した .py ファイルです。ただし、1 つの .py ファイルをスクリプトとライブラリの両方として記述することができます。timeit モジュールは、そのようなスクリプト/ライブラリの二重性の例です。timeit モジュールをコマンド ラインから実行すると、マイクロ ベンチマークする Python コードを含むコマンド ライン引数が必要になります。ただし、timeit モジュールをマイクロ ベンチマーク関数または評価/実行対象の文字列にインポートすることもできます。
モジュールは、主にインポートすることを意図しているという点でライブラリと同じですが、ファイルが実行可能 (したがってスクリプト) であるかインポート可能であるか (つまり、スクリプト) を必ずしも暗示することなく、.py ファイルを参照するためにモジュールという単語を使用することがあります (したがって、ライブラリ)。ファイルを実行するためのものなのか、インポートするためのものなのかわからない場合に使用する方が安全な言葉です。または、ファイルの性質をあまり重視したくない場合。または、インポート用の実行可能スクリプトとライブラリの両方を含むファイルのコレクションを参照する場合。そういう意味ではよりニュートラルな言葉です。
Package はa folder containing an __init__.py
、少なくとも 1 つ以上の他の .py ファイルを具体的に参照します (技術的には、init .py のみを含むフォルダーもパッケージですが、単一の .py モジュールに変換する必要があります)。したがって、パッケージはモジュール/ライブラリよりも上位の階層です。