PYTHON MEBY

Pythonでモジュールをインポート(import, from import)

この記事では、Pythonにおけるモジュールのインポート方法について解説します。`import`文と`from import`文の使い方、効率的なインポート方法、そしてよくあるエラーとその対処法について説明します。

目次

`import`文によるモジュールのインポート

最も基本的なインポート方法は`import`文です。モジュール名を指定してインポートし、モジュール名を使ってアクセスします。

import math

print(math.sqrt(25))  # 5.0

上記のように`math`モジュールをインポートし、`math.sqrt()`関数を使用しています。

import os, sys

print(os.getcwd())
print(sys.version)

複数のモジュールを同時にインポートすることもできます。

`from import`文によるモジュールのインポート

`from import`文を使うと、モジュールから特定の関数やクラスを直接インポートできます。

from math import sqrt

print(sqrt(25))  # 5.0

この例では`math`モジュールの`sqrt`関数を直接インポートしています。モジュール名を省略して使用できますが、名前の衝突に注意が必要です。

from math import sqrt, pi

print(sqrt(25))
print(pi)

複数の関数やクラスを同時にインポートすることもできます。

効率的なインポート方法

多くのモジュールをインポートする場合は、インポートするモジュールをまとめたり、必要なものだけをインポートすることで、コードの見通しを良くし、読み込み時間を短縮できます。

import math
from os import getcwd, path

print(math.sin(30))
print(getcwd())

使用頻度や依存関係を考慮して整理しましょう。

パッケージのインポート

パッケージとは、複数のモジュールをまとめたものです。パッケージ内のモジュールをインポートするには、パッケージ名とモジュール名を指定します。

import mypackage.mymodule

mypackage.mymodule.myfunction()

絶対インポートと相対インポート

絶対インポートは、パッケージのルートディレクトリからの相対パスでモジュールを指定します。相対インポートは、現在のモジュールからの相対パスでモジュールを指定します。Python3.3以降では、`__init__.py`ファイル内の`__all__`変数を使って、インポート可能なモジュールを制限できます。

#絶対インポート
from mypackage.subpackage.module import myfunction

#相対インポート (Python 3.3以降推奨)
from .module import myfunction

よくあるエラーと対処法

モジュールのインポート時に発生する可能性のあるエラーとその対処法です。

  • `ModuleNotFoundError`:指定したモジュールが見つからない場合。モジュール名が正しいか、環境変数`PYTHONPATH`を確認しましょう。
  • `ImportError`:モジュールは存在するが、インポートできない場合。依存関係の問題や、循環インポートの問題の可能性があります。
  • 名前の衝突:`from import`でインポートした名前が重複した場合。モジュール名をつけて明示的に呼び出すか、別の名前でインポートしましょう。

関連記事