【Python】import文とモジュールの使い方を初心者向けに徹底解説!自作モジュールと__name__==__main__まで

Pythonのimport文とモジュール入門

※このサイトの記事内では広告を掲載している場合があります。

Pythonを書き始めると、すぐに「import」という言葉に出会います。import math や from datetime import datetime など、サンプルコードにはほぼ必ず登場しますが、「なぜ必要なの?」「importとfrom importは何が違うの?」と疑問に思った方も多いのではないでしょうか。

この記事では、Pythonのimport文の基本から、標準ライブラリの使い方、自分でモジュールを作る方法、そして if __name__ == "__main__": の意味まで、初心者向けに順を追って解説します。

importとは?モジュールを読み込む仕組み

Pythonには、よく使う機能を部品としてまとめた「モジュール」という仕組みがあります。importは、そのモジュールを自分のプログラムで使えるように読み込む命令です。たとえば、数学の計算をまとめた math モジュールを使ってみましょう。

import math

print(math.sqrt(16))   # 4.0
print(math.pi)         # 3.141592653589793

math.sqrt のように「モジュール名.機能名」と書くことで、モジュール内の関数や変数を呼び出せます。

importの3つの書き方

1. import モジュール名

最も基本的な書き方です。使うときは必ずモジュール名を前につけます。どのモジュールの機能か一目で分かるので、読みやすいコードになります。

2. from モジュール名 import 機能名

from math import sqrt, pi

print(sqrt(25))  # 5.0
print(pi)        # 3.141592653589793

必要な機能だけを取り出す書き方です。モジュール名を省略して書けるので短くなりますが、他の変数名とぶつからないよう注意が必要です。

3. import モジュール名 as 別名

import datetime as dt

print(dt.date(2026, 1, 1))  # 2026-01-01

長い名前に短い別名をつける書き方です。データ分析でよく見る import numpy as np もこの形です。

ここまでで、基本的な使い方は押さえられました。ちなみに、日付を扱う datetime モジュールについては datetimeで日付・時刻を扱う方法 で、乱数を扱う random モジュールは randomモジュールの使い方 で詳しく解説しています。

独学で伸び悩んだら:モジュールや関数の設計は、独学だと「これで合っているのか」が分かりにくい分野です。学習の進め方に迷ったら、Pythonが学べるプログラミングスクールの比較記事も参考にしてみてください。

よく使う標準ライブラリの例

Pythonには、追加インストール不要で使える「標準ライブラリ」が豊富に用意されています。代表的なものを表にまとめます。

  • math:平方根や三角関数などの数学計算
  • random:乱数の生成、ランダムな選択
  • datetime:日付・時刻の取得と計算
  • json:JSONデータの読み書き
  • os:ファイルやフォルダの操作、環境変数の取得
  • sys:Python実行環境の情報、コマンドライン引数

たとえば os を使うと、カレントディレクトリを取得できます。

import os

print(os.getcwd())  # 例: /home/user/project

自作モジュールを作って読み込む

importできるのは標準ライブラリだけではありません。自分で書いた .py ファイルも、そのままモジュールとして読み込めます。同じフォルダに次の2つのファイルを作ってみましょう。

まず、greet.py です。

# greet.py
def hello(name):
    return f"こんにちは、{name}さん!"

次に、これを読み込む main.py です。

# main.py
import greet

print(greet.hello("太郎"))  # こんにちは、太郎さん!

python main.py を実行すると、greet.py の関数が呼び出されます。関数の作り方に不安がある方は、関数(def)の作り方を先に読んでおくと理解しやすいです。

if __name__ == “__main__”: の意味

Pythonのコードで、次のような記述を見たことはありませんか?

# greet.py
def hello(name):
    return f"こんにちは、{name}さん!"

if __name__ == "__main__":
    print(hello("テスト"))

__name__ は、Pythonが自動で用意する特別な変数です。そのファイルを直接実行したときは "__main__" が入り、他のファイルからimportされたときはモジュール名(ここでは "greet")が入ります。

  • python greet.py と直接実行 → print(hello("テスト")) が動く
  • main.py から import greet → 何も表示されない(関数が使えるだけ)

つまり、このif文は「このファイルが直接実行されたときだけ動かしたい処理」を書く場所です。モジュール単体の動作確認用コードを残しておきたいときに便利です。

よくあるエラーと対処法

ModuleNotFoundError

ModuleNotFoundError: No module named 'xxx' は、モジュールが見つからないときのエラーです。原因は主に次の3つです。

  • モジュール名のスペルミス(大文字・小文字も区別されます)
  • 外部ライブラリが未インストール(pip install ライブラリ名 で導入します)
  • 自作モジュールが別のフォルダにあり、実行場所から見えていない

エラーの読み方や対処の基本は 例外処理(try-except)の解説 も参考になります。

自作ファイル名が標準ライブラリと同じ

自作ファイルに random.py や math.py といった名前をつけると、標準ライブラリではなく自分のファイルが読み込まれ、思わぬエラーの原因になります。標準ライブラリと同じ名前は避けましょう。

もっと効率的にPythonを学びたい人へ

importやモジュールの仕組みが分かると、書けるプログラムの幅が一気に広がります。一方で、「エラーの原因が自分では分からない」「次に何を学べばいいか迷う」といった壁にぶつかる方も少なくありません。そんなときは、マンツーマンで質問できる環境を使うのも一つの方法です。未経験からPythonを学べ、無料カウンセリングで相談できるスクールもあります。

※本記事には広告(アフィリエイトリンク)を含みます。

Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】

資格取得を目標にするなら、Python資格の教材比較記事も合わせてご覧ください。

まとめ

  • importは、モジュール(部品)を読み込んで使えるようにする命令
  • 書き方は import、from ... import、import ... as の3種類
  • 標準ライブラリは追加インストール不要で、math・random・os などがある
  • 自作の .py ファイルもモジュールとしてimportできる
  • if __name__ == "__main__": は、直接実行されたときだけ動かす処理を書く場所
  • ModuleNotFoundErrorはスペル・未インストール・ファイルの場所を確認する

まずは標準ライブラリのimportから試して、慣れてきたら自作モジュールにも挑戦してみてください。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA