importの概要
| モジュールの読み込み Python予約語 | ||
|
import 概要 わかりやすく説明 |
||
|
importの考え方をイメージで理解

importの基本的な使い方
Pythonに標準で備わっている数学用ライブラリ math を読み込み、その中にある平方根計算関数(sqrt)を呼び出す最も基本的な例です。
# import を使ってモジュールを読み込む
import math
result = math.sqrt(25) # mathモジュールの中にある「sqrt」を呼び出す
print(result) # 結果: 5.0
import モジュール名で読み込んだ場合、その中の機能を使うためには必ずモジュール名.関数名()のように、ドット(.)を繋いで「どこに所属している機能か」を明示する必要があります。
特定の機能のみをインポート(from import)
モジュール名(所属)をいちいち書くのが面倒な場合、from を用いて特定の関数だけを現在のプログラムに直接インストールする手法です。
# mathモジュールから、sqrt関数だけをダイレクトにインポート
from math import sqrt
result = sqrt(36) # 「math.」を付けずに直接関数名だけで実行可能
print(result) # 結果: 6.0
エイリアス(別名)を使ったインポート
データ分析などで頻繁に呼び出す大規模な外部ライブラリは、タイピングの負担を減らすため、as を使って一般的な業界標準の略称(別名)に置き換えてインポートします。
# numpy という長い名前を、以降は「np」として扱う
import numpy as np
array = np.array([1, 2, 3]) # numpy.array と同じ意味になります
print(array)
複数のモジュールをインポート
文法上、カンマ(,)で区切ることで1行にまとめて複数のモジュールを並べることができます。
# 複数のモジュールを1行で記述
import os, sys
print(os.name) # OSの種類を表示
print(sys.version) # Pythonのバージョンを表示
- 1行にまとめられますが、Pythonの公式コーディング規約(PEP 8)では、可読性とメンテナンス性を高めるためにモジュールごとに1行ずつ分けて書くことが強く推奨されています(後述の注意点を参照)。
ユーザー定義モジュールのインポート
同じフォルダ(ディレクトリ)内にある別のPythonファイルも、ファイル名から .py を除いた名前を指定することで簡単にインポートして連携させることができます。
# 同じフォルダにある自作ファイル「mymodule.py」を読み込む
import mymodule
mymodule.hello() # mymodule.py 内で定義されている hello() 関数を実行
外部ライブラリのインポート
世界中の開発者が公開している便利な外部パッケージ(例:Web通信用の requests)を利用する場合は、事前にターミナル(コマンドプロンプト)でインストールを済ませてからインポートします。
# 【事前準備】PCのターミナル等で以下のコマンドを実行
pip install requests
# インストール完了後、Pythonコード側でインポート
import requests
response = requests.get("https://www.example.com")
print(response.status_code) # 結果: 200(通信成功)
importの注意点
- 「from モジュール import *」というワイルドカード指定は原則禁止(最重要):
from math import *と書くと、そのモジュール内のすべての関数を所属名(math.)なしで直接使えるようになり一見便利ですが、自作の関数名や他のモジュールの関数名と名前が衝突し、上書きされてバグを引き起こす最大の原因になります。実務では必ず名前を明示してインポートしてください。# 【失敗を招く危険なコード例】 from module_A import * from module_B import * # もし両方のモジュールに「setup()」という同名の関数があった場合、 # 後から読み込んだmodule_Bの機能で勝手に上書きされ、module_Aの処理が動かなくなる致命的なバグになります - 自作のファイル名が、標準ライブラリの名前と被るとシステムがクラッシュする:たとえば、自分で作成したスクリプトに
math.pyやrandom.pyという名前を付けて保存してしまうと、Pythonは標準ライブラリではなく「あなたのアカウントが作った目の前の math.py」を最優先でインポートしてしまいます。その結果、本来の数学関数が読み込めなくなりプログラム全体がエラーで動かなくなります。ファイル名には固有の分かりやすい名前を付けましょう。 - PEP 8に準拠したインポートの記述順序ルール:インポート文は必ずスクリプトの最上部(ファイルの先頭)にまとめて記述し、さらに以下の3つのグループ順に並べ、それぞれの間には空行を1行挟むのが世界共通の美しいルールです。
- 第1グループ:標準ライブラリ(Pythonに最初から組み込まれているもの:
os,sys,mathなど) - 第2グループ:サードパーティライブラリ(pipで後から入れた外部パッケージ:
requests,numpyなど) - 第3グループ:ローカルアプリケーション設定(同じプロジェクト内の自作ファイル)
# 【美しい配置の模範例】 import math import os import requests import mymodule - 第1グループ:標準ライブラリ(Pythonに最初から組み込まれているもの:
importのよくある質問
- Q: `import` と `from ... import` はどちらを使うのが適切ですか?基準はありますか?
- A: モジュールの規模や、使う関数の頻度で使い分けします。 基本的には、コードを読んだ他の人が「この関数はどのライブラリから持ってきたものか」が一目で判別できるように、
import mathのように所属を明記する書き方が最も安全です。 ただし、1つのファイル内でmath.sqrt()を何十回も連続して使う場合や、モジュール名が非常に長くてコードが横に肥大化してしまう場合は、from math import sqrtを使ってスッキリ記述する方が好まれます。 - Q: モジュールを一度インポートしたあと、プログラムの途中で中身(ソースコード)を書き換えた場合、自動的に反映されますか?
- A: 反映されません。Pythonはパフォーマンスを最適化するため、同じプログラムの実行中に一度
import完了したモジュールは、二度目以降のimport文を無視(キャッシュから読み込み)する仕様になっています。もし対話型環境(Jupyter Notebookなど)で、外部ファイルを修正した結果をリアルタイムに再読み込みさせたい場合は、importlibという専用のモジュールを使ってリロード命令を下す必要があります。# 修正した自作モジュールを強制的に最新状態へ再読込する手順 import importlib import mymodule importlib.reload(mymodule) # これでファイルの最新の変更が即座に反映されます
まとめ
import は、世界中のエンジニアが開発した無数の拡張機能(エコシステム)へアクセスし、自身のプログラムを無限にスケールさせるための鍵となる予約語です。
- 標準搭載のモジュールや、外部からインストールしたパッケージ、自作の別ファイルを現在のプログラムにロードする。
fromによる機能のピンポイント抽出や、asによるニックネーム付与を活用し、ソースコードの可読性を適切にコントロールする。- 名前の衝突リスクを避けるため、ワイルドカード(
*)の使用を控え、モジュール名と重複するようなファイル名(math.pyなど)の作成を避ける。
実務の現場では、Webサーバーの構築から人工知能のモデル構築にいたるまで、あらゆる開発が膨大な import の上に成り立っています。読み込みの順序や作法(PEP 8)を正しく守り、美しくモジュール化された安全なプログラム設計のスキルを身につけましょう。