【関連記事】【Pythonのライブラリ管理ツール】pipインストールを徹底解説!Windowsでも簡単?
Pythonのモジュールとは
Pythonには、いくつもの開発支援機能が備わっており、モジュールもその一つです。モジュールは部品という意味を持つ言葉で、Pythonで利用できるクラスや関数などをまとめたプログラムファイルで、他のプログラムから呼び出して利用することができます。
モジュールを利用するメリット
モジュールを利用すると、利用頻度の高いクラスや関数などをその都度記述しなくてよくなるため、コーディングを効率的に進めることができます。また、それに伴ってよりシンプルで可読性の高いコードを書くことが可能になります。
モジュールの概要
Pythonのモジュールの実体は、「.py」の拡張子を持つプログラムファイルです。ファイル内にはPythonで書かれたコードが記載されています。具体的には、モジュールが想定する用途に沿った関数やクラスなどがまとめられています。
モジュールとパッケージの違い
Pythonでは、関連性の高い複数のモジュールがディレクトリ(フォルダ)単位にまとめられたものをパッケージと呼びます。機能が類似しているモジュールを複数呼び出したい時、一つ一つ読み込むよりパッケージ単位で読み込んだ方が効率的です。
パッケージは同じディレクトリ内に「__init__.py」というPythonファイルを配置することで識別されます。
モジュールとライブラリの違い
ライブラリは、一般的には他のプログラムから呼び出すことを前提にした汎用的なプログラムのことを指しますが、Pyrhonでは前後の文脈によって様々な意味を持ちます。モジュールやパッケージのことを指してライブラリという場合もありますし、いくつかのパッケージをまとめたものを指す場合もあります。
ここでは、いくつかのパッケージをまとめたものをライブラリと表現します。ライブラリにはPythonにあらかじめインストールされている「標準ライブラリ」と、個別にインストールが必要な「外部ライブラリ」があります。ライブラリを利用すると、より複雑な機能を簡単に実装することができます。
Pythonの標準ライブラリとは
Pythonの標準ライブラリとは、Pyrhonをインストールした時点で使用できるライブラリを指します。Pythonにはプログラマーがすぐに開発を始められる環境をセットで提供する「電池付属 (Battery Included)」という思想があり、利用頻度の高い汎用的なクラスや関数のほとんどはこの標準ライブラリだけでまかなうことができます。
モジュールの使い方
ここでは標準ライブラリの使用例を紹介します。今回は例として、randomというモジュールを使用します。このrandomモジュールは、その名の通りランダムな値を生成する関数を使用できるため、実行するたびに結果が変わるクジの抽選のような処理に利用されます。
import文を使ってモジュールを呼び出す
モジュールを呼び出すにはimport文を使用します。例えば、randomモジュールを呼び出したい場合は、Pythonファイル内に以下のように記述します。
import random
randomモジュールを呼び出すと、以降はそのプログラム内でrandomモジュールに含まれる乱数生成の関数を使用できるようになります。例えば、整数の乱数を生成するrandint関数を以下のように記述できます。
random.randint(1.10)
「.」を挟んで左がモジュール名、右が関数名です。この関数が実行されると、1から10までのランダムな整数を返却します。Python学習をはじめたばかりの方は、まずは標準ライブラリを一通り活用してみるとよいでしょう。
Pythonの外部ライブラリとは
Pythonでは、標準ライブラリ以外にも自分や第三者が作成したライブラリをインポートして利用することができます。このような標準ライブラリ以外のモジュールをすべて外部モジュール(または外部ライブラリ)と呼びます。
Pythonの魅力の一つとして、この外部ライブラリが充実していることが挙げられます。機械学習やデータ分析など、様々な専門分野で活用できる豊富なライブラリを駆使すると、高度な開発を効率的に行うことができます。
外部ライブラリの利用方法
外部ライブラリは、最初から利用できる標準ライブラリとは違い、個別にダウンロード・インストールが必要になります。外部ライブラリのインストール方法は環境によって異なりますが、一般的にはpipというパッケージ管理ツールを使用して、PyPI(Python Package Index)というサードパーティソフトウェアリポジトリ(大量のライブラリが保管されている倉庫のような場所)に公開されているPythonパッケージをダウンロード・インストールして利用します。
【参考】:PyPI
pipを利用して外部ライブラリをインストールする
ここでは、pipを使用して外部ライブラリをインストールする方法について解説します。pipはお使いのPythonのバージョンによってはプリインストールされていますが、そうでない場合は別途インストールする必要があります。
pipのインストール
pipがインストールされているかどうかは、コマンドライン上で以下のコマンドを実行すると確認できます。
python -m pip -V
実行結果として、pipのバージョンが表示されればインストール済みです。もしインストールされていない場合は、下記URLからget-pip.pyをダウンロードできます。
【参考】:PyPI公式
get-pipを使用してpipをインストールするには、コマンドライン上で以下のコマンドを実行します。
python get-pip.py
pipの使用方法
pipがインストールされている場合は、インストールしたいパッケージを選んでインストールしてみましょう。 例えば、PythonからExcelを操作できるライブラリであるopenpyxlをインストールする場合は、コマンドライン上で以下のコマンドを実行します。
python -m pip install openpyxl
インストールされた外部ライブラリは、標準ライブラリと同じようにimport文で呼び出して使用することができます。
import openpyxl
ここではpipの基本的な使い方にのみ絞って紹介しましたが、インストールするライブラリのバージョンを指定したり、テキストファイルに記載されたライブラリを一括インストールしたり、ライブラリのアップグレード・ダウングレードといった操作にも対応しています。慣れてきたら挑戦してみてください。
外部モジュールを作成する方法
ここまでは、標準ライブラリや外部ライブラリなど、第三者が作ったモジュールやライブラリを呼び出して使用する方法について解説してきました。これらのモジュールやライブラリは、実体はプログラムファイルですので、自分でも作ることができます。ここでは、モジュールを作成して呼び出す方法について解説します。
pyファイルを作成する
まずは、コードを記載するためのファイルを作成します。お使いのエディターで、任意の名前の新規ファイルを作成しましょう。
なお、標準ライブラリや外部ライブラリでは意識する必要はありませんでしたが、Pythonではモジュールの読み込みに使用されるディレクトリが指定されていますので、そこに格納する必要があります。
ファイルの拡張子を「.py」とするとそのファイルはPythonファイルとして扱われるようになり、import文で呼び出せるようになります。例えば、以下のようなファイル名にします。
mymodule.py
pyファイルにコードを記述する
先ほど作成したファイルを開いて、コードを記述していきます。モジュールは他のプログラムから呼び出して使用することが前提となるため、単独で実行できるプログラムとしてではなく、他のプログラムで利用したいクラスや関数を定義しておくことが一般的です。
ここでは、シンプルにモジュール名を出力するだけのfuncname関数を定義してみます。
def funcname():
print(__name__)
コードが記述された状態で保存すれば自作モジュールは完成です。実用的なモジュールにするためには、目的を持ってそれに沿ったクラスや関数を追加していく必要がありますが、モジュールを自作するというハードルはそれほど高くないということです。
自作したモジュールも、標準ライブラリや外部ライブラリと同じようにimport文で呼び出して使用できます。
モジュールを自作できるようになると、標準ライブラリや既存の外部ライブラリだけではできない「こんなことができたら」を実現できるようになり、可能性が無限に拡がります。
モジュール内で他のモジュールを呼び出す
ここまで、モジュールにはクラスや関数を定義できると説明してきましたが、モジュール内で他のモジュールを呼び出すこともできます。
これにより、複数のモジュールを組み合わせたより複雑で高度なモジュールを開発することができます。
モジュール同士の相乗効果によって新しく高度なパッケージやライブラリの開発が促され、加速度的に発展していくことも、Pythonを利用する大きなメリットの一つです。
モジュールを活用してスピーディーに高度な開発を体験
プログラミングはともすれば車輪の再発明になりがちですが、Pythonではモジュールを活用することで既に誰かが発明した高度で充分な動作実績のあるコーディングを誰もが簡単に再利用することができます。
結果的には同じプログラムが出来上がるとしても、開発やデバッグにかかる時間は少ないに越したことはありません。モジュールを積極的に活用して、優秀なPythonエンジニアを目指しましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから