Python モジュールとパッケージ: コード プロジェクトの編成

Python のモジュールとパッケージを理解します。ファイルのインポート、大規模プロジェクトの構築、標準ライブラリの利用、および絶対インポートと相対インポートの使用方法を学びます。

エディターで試してみる

概要

アプリケーションが成長するにつれて、すべてのコードを 1 つのファイルに保持すると、管理、読み取り、デバッグが不可能になります。 Python は、コードをモジュールとパッケージに編成することでこの問題を解決します。モジュールは、変数、関数、クラス、実行可能ステートメントを含む単純な Python ファイル (`.py` で終わる) です。コードを論理モジュールに分割することで、テストやさまざまなアプリケーション間での共有が容易なクリーンで再利用可能なコードベースを作成できます。

あるモジュールのコードを別のモジュールで使用するには、Python では `import` キーワードを使用します。モジュール全体をインポートする (例: 「import math」)、特定の属性をインポートする (例: 「from math import pi, sqrt」)、またはコードを簡潔に保つためにエイリアスの下でモジュールをインポートする (例: 「import pandas as pd」) ことができます。 Python のインポート システムは、インポートを解決する前に、現在のディレクトリから始まり、インストール ディレクトリと標準ライブラリの順に特定のパス リストを検索します。

パッケージは、ディレクトリ構造に編成されたモジュールのコレクションです。ディレクトリをパッケージとして定義するには、従来、ディレクトリには `__init.py` という名前のファイルが含まれていました (ただし、これはPython 3.3+ の名前空間パッケージではオプションです)。この構造により、関連するモジュールを 1 つの名前空間にグループ化できます。たとえば、`database` という名前のパッケージには、モジュール `connection.py` と `queries.py` が含まれる場合があります。ドット表記を使用してコンテンツをインポートします: `import database.connection`。モジュールとパッケージをマスターすることは、スケーラブルで本番環境に対応した Python アプリケーションを構築するための鍵となります。

コードと実行の出力

Python のインポート システムを使用して数学関数にアクセスし、カスタム エイリアスを利用します。

import math
from math import sqrt as square_root

# Calculate mathematical constants and values
val = 16
result = square_root(val)
pi_value = math.pi

print(f"Square root of {val} is {result}")
print(f"Value of Pi: {pi_value:.4f}")
print(f"Cosine of 0 is {math.cos(0)}")
端子出力
Square root of 16 is 4.0
Value of Pi: 3.1416
Cosine of 0 is 1.0

段階的な実装

  • ビジネス ロジックをルート ハンドラーから分割する
  • アプリケーション全体で標準ライブラリ ユーティリティを利用する
  • コードを再利用可能なオープンソース ライブラリとして公開する

よくある質問

__init.pyの目的は何ですか?

ディレクトリを Python パッケージとして初期化します。また、インポートを容易にするために、特定のサブモジュールまたは変数をパッケージ レベルで公開するために使用することもできます。

外部モジュールをインストールするにはどうすればよいですか?

コマンドライン (pip install リクエストなど) 経由で Python のパッケージ マネージャー pip を使用し、PyPI からパッケージをダウンロードしてインストールします。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。