Pythonのimportを学ぼう!基本的な使い方をわかりやすく解説
プログラミングでは、効率的なコード管理が重要です。Pythonのimport文は、外部モジュールの機能を自分のプログラムに取り込むための基本的かつ重要な機能です。
本記事では、モジュールやパッケージのインポート方法、from-import文の活用、別名指定の方法、よくあるエラーの対処法まで、初心者にもわかりやすく解説します。
コード例も多数掲載しているので、実際に試しながら学習できます。
Contents
Pythonのimportの定義
import文は、外部のモジュールや関数をプログラム内で使えるようにする機能です。
モジュールとは、関連する機能やクラスをまとめたファイルのことで、Pythonの標準ライブラリや外部ライブラリとして提供されます。
# 標準のmathモジュールをimportする例
import math
print(math.sin(math.pi / 2)) # mathモジュールの機能は math「ドット」名前 で参照できます。
importにより、チームや他者の開発した機能をプログラムに組み込み、効率的に開発できます。
fromとの違い
importは指定したモジュール全体を取り込むのに対し、fromは特定の関数やクラスのみを取り込みます。
# from importの例
from math import sin, pi
print(sin(pi / 2)) # fromの場合は、単に「sin」「pi」の名前で参照できます。
fromを多用すると関数の出処が不明確になるデメリットもあるため注意してください。
importの基本構文
import文の基本的な構文は以下のとおりです。
import モジュール名
上記の構文で、指定したモジュール全体をインポートできます。
# 数学関数を含むmathモジュールをインポートする例
import math
特定の関数やクラスだけをインポートしたい場合は、from-import文を使います。
from モジュール名 import 関数名
fromの例:
# mathモジュールからsin関数だけをインポートする例
from math import sin
asキーワードを使えばモジュールや関数に別名をつけられます。
import モジュール名 as 別名
from モジュール名 import 関数名 as 別名
基本的な使い方と実用例
importの基本的な使い方をご紹介します。
モジュール全体をインポートする場合
モジュール名のみ記述します。
import math # Python付属のmathモジュールをインポート
result = math.sqrt(16) # math.sqrt は 平方根を計算します。
print(result) # 4.0
import後に機能を参照する際は、モジュール名を何度も書く必要があります。
モジュールの特定の機能だけをインポートする場合
from-import文を使用します。
from math import sqrt # mathモジュールのsqrt関数のみをインポート
result = sqrt(16)
print(result) # 4.0
別名をつけてインポートする場合
asを使用し、別名でインポートします。
import numpy as np # numpyはオープンソースの数値計算モジュールで、別名npがよく使われます。
arr = np.array([1, 2, 3, 4, 5]) # np.関数名 でnumpyモジュールの関数にアクセスできます。
print(arr.mean()) # 3.0
asは、長いモジュール名や頻繁に使用するモジュールで便利です。
複数の関数をインポートする場合
カンマで区切って記述します。
from math import sqrt, sin, cos # mathモジュールの3つの関数をインポート
print(sqrt(16)) # 4.0
print(sin(0)) # 0.0
print(cos(0)) # 1.0
ただし、多くの関数をインポートすると名前の衝突が起きる可能性も高まるため、ご注意ください。
パッケージのインポートについて
パッケージとは、複数のモジュールをまとめたものを指します。
パッケージ内のモジュールをインポートするには、以下のような構文を使います。
import パッケージ名.モジュール名
# モジュールの関数を使用する際には「パッケージ名.モジュール名.関数名」形式で指定
パッケージ内モジュール例:
# osパッケージ内のpathモジュールをインポートする例
import os.path
# 関数の使用例
file_size = os.path.getsize(‘r-stone.png’) # osパッケージ>pathモジュール>getsize関数
より簡潔に記述したい場合は、fromを使ってモジュールを直接インポートできます。
from パッケージ名 import モジュール名
# 関数を呼び出す際に「モジュール名.関数名」形式で指定できる
fromパッケージの例:
# osパッケージからpathモジュールをインポートする例
from os import path
# 関数の使用例
file_size = path.getsize(‘r-stone.png’) # pathモジュール>getsize関数
よくあるエラーと対処法
まず、ModuleNotFoundErrorは、指定したモジュールがPythonの検索パス内で存在しない場合に発生します。外部パッケージが未インストールか現在の実行環境に認識されてないと発生します。
必要に応じてパッケージを再インストールしてください。
# ModuleNotFoundError の例
try:
import numpy as np
except ModuleNotFoundError:
print(“モジュールが見つかりません。pip install で正しくインストールしてください。”)
次に、NameErrorやAttributeErrorは、モジュールの名前や、モジュールの関数名・変数名が存在しない場合に発生します。
対処法としては、ドキュメントを確認し、正しい名前を指定し直してください。
# NameError の例
try:
import mass # 誤ったモジュール名
except NameError:
print(“正しいモジュール名は ‘math’ です。”)
import math
# AttributeError の例
import math
try:
result = math.is_prime(26)
except AttributeError:
print(“指定した関数は存在しません。math モジュールのドキュメントを確認してください。”)
他に、循環インポートにも注意が必要です。循環インポートの問題は、2つ以上のモジュールが互いに依存し合う場合に発生します。
対処法は、インポート構造を見直し、必要に応じてモジュールの分割や再設計をおこなうことです。
まとめ
Pythonのimportは開発効率を高める重要な機能です。モジュール全体のimportやfrom-import、asによる別名指定など、状況に応じた使い分けがポイントです。基本をしっかり押さえて、効率的なコード開発を始めましょう。
まずは標準ライブラリのmathモジュールで練習してみましょう。