Python PR

【Python】import文を使ってモジュールやライブラリを読み込む方法

記事内に商品プロモーションを含む場合があります

この記事では、Pythonファイルにモジュールやライブラリを読み込む方法を解説します。

Linkモジュールやパッケージやライブラリとは?

Pythonファイルに任意のモジュールを読み込むことによって、そのモジュールに定義されている機能(関数やクラスなど)を読み込み先のPythonファイルから呼び出すことができます。

Pythonには予めかなりの数のライブラリが用意されています。これらの標準ライブラリを使うことで色々なプログラムを実装することができるので是非使っていきましょう。

外部リンクPython 標準ライブラリ — Pythonドキュメント

それでは、Pythonファイルにモジュールやライブラリを読み込む方法を見ていきましょう!

モジュールやライブラリを読み込む方法

モジュールやライブラリを読み込むにはimport文を使います。import文の後にモジュールやライブラリの名前を指定することで、そのモジュールやライブラリを読み込むことができます。

import ライブラリ名

Tips

モジュールなどを読み込むことを「インポートする」と言ったりする

以下のコードでは、標準ライブラリであるmathをインポートし、print()関数を使って出力しています。ちなみにmathモジュールは、数学関数を扱うためのモジュールです。

import math

print(math)  
# <module 'math' from '/Users/user/.pyenv/versions/3.11.3/lib/python3.11/lib-dynload/math.cpython-311-darwin.so'>

読み込んだモジュールに定義されている機能(関数やクラス、変数など)を呼び出すには、クラスから関数を呼び出すのと同じようにドット(.)使ってアクセスします。

import math

# pi の呼び出し(円周率が代入されている変数)
math.pi

# factorial の呼び出し(階乗を返す関数)
math.factorial(5)

このように、import文を使ってモジュールをインポートすることで色々なスクリプトから同じ機能(関数やクラスなど)を簡単に呼び出すことができます。

特定の機能のみを読み込む

モジュールの特定の機能のみを使いたい場合が多々ある。そんな時は、from ... import ...でライブラリに定義されている特定のモジュールやクラス、関数のみをインポートできる。

from ライブラリ import 使用したい機能の名前

以下のコードは、mathモジュールの変数piと関数factorialのみをインポートしています。この方法でインポートした場合はモジュール名をつけずに使用できます。

from math import pi, factorial

# pi の呼び出し(円周率が代入されている変数)
pi

# factorial の呼び出し(階乗を返す関数)
factorial(5)

# math はインポートしてないのでアクセスできない(NameErrorが発生)
math

ただし、この方法は異なるモジュールに同名の関数やクラスが存在すると、後からインポートしたものが先にインポートしたものを上書きしてしまう恐れがあるので注意が必要です。

別名をつける

インポートしたモジュールやクラスの名前がうんざりするほど長いことがある。そんな時にはasを使うことでインポートしたモジュールやクラスに別名を付けることができます。

import モジュール as 別名
from ライブラリ import モジュールやクラス as 別名

以下のコードでは、datetimeモジュールにdtという別名を付け、datetime.dateクラスにdという別名を付けて、それぞれtoday()という関数を呼び出しています。

import datetime as dt
from datetime import date as d

print(dt.date.today())
print(d.today())

長い名前は別名を付けて短くすると楽ちんです。また、pandasnumpyのように慣習的の別名を付けて扱うライブラリもあるので注意してください。

import pandas as pd
import numpy as np

このように、インポートしたモジュールに別名をつけることが可能ですが、短いだけでなくみんながわかりやすい名前を付けることが大切です。

全てをインポートする

*(アスタリスク)を指定することで指定したモジュールに定義されている_(アンダースコア)以外から始まる名前のものを全てインポートできます。

from math import *

# mathモジュールに定義されている機能にモジュール名なしでアクセスできる
pi
factorial(5)
fabs(-2)

しかし、この書き方はあまり推奨されません。定義済みの名前(変数やクラスなど)を上書きしてしまう恐れがあり、思わぬバグを引き起こす可能性があるからです。

また、使用しない機能まで読み込んでしまうので無駄にメモリを消費してしまいます。

まとめ

この記事では、Pythonファイルにモジュールやライブラリをインポートする方法を解説しました。

Pythonには標準ライブラリ以外にもめちゃくちゃ使えるライブラリがそこら中にあるので、何かしらのプログラムを作成する際には、まずライブラリを探してみることをオススメします。

もちろん、自作したモジュールやライブラリをインポートすることもできます。

Link自作モジュールやパッケージを作って使ってみる

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ