はじめに
Pythonで開発を始めたばかりの方にとって、「ライブラリ」という言葉や、その使い方に戸惑うことがあると思います。
この記事では、標準ライブラリと外部ライブラリの違いや、それらがどのように使えるようになるのかを、わかりやすく解説します。
対象読者
- MacBook利用者
- Python利用者
※理由:自分自身がMacを利用しており、その経験を元にしているため
きっかけ
pipというパッケージマネージャーを使って外部ライブラリをインストールするとなったときに、「あれ、どういう仕組みでインストールし使えるようになるんだ?」と思ったのがきっかけです。
ライブラリとは
※https://it-infomation.com/module-package-library-difference/ より引用
ライブラリとは、特定の機能をまとめた道具箱のようなものです。
私たちはその中の道具(関数やクラス)を使うことで、自分で一から書かなくても便利な機能を簡単に使うことができます。
Pythonでは、主に次の2種類のライブラリがあります
① 標準ライブラリ:Pythonに最初から付属しているライブラリ
② 外部ライブラリ:必要に応じてインターネットから追加でインストールするライブラリ
全体像
標準ライブラリとは
HomebrewでPythonをインストールするとPythonの実行ファイル(インタプリタ)や標準ライブラリなどが、Macのストレージ(HDDやSSD)にインストールされます。
例えば、/usr/local/bin/python3 や /opt/homebrew/lib/python3.x/
に配置されます。
※インストール先のディレクトリはMacのCPU(Intel or Apple Silicon)やHomebrewの設定によって異なります。
ネット環境がなくてもすぐに使用することができます。
Pythonインタプリタが必要に応じてこれらのファイルを読み込み、メモリ上に展開して利用します。
(例)math, datetime, os, random, json, re など
仕組み
標準ライブラリは、Pythonをインストールするときに、Python本体と一緒にストレージ(ディスク)上にファイルとして配置されます。
PythonをHomebrewでインストールすると、標準ライブラリはHomebrewが管理するディレクトリ(たとえば /opt/homebrew/lib/python3.x/
や /usr/local/Cellar/python@3.x/...
内)にファイルとして配置されます。実際にファイルとしてストレージに保存されるということです。
プログラム中で import 文を使うことで、Pythonインタプリタがそのファイルを必要なときにだけ読み込み(ストレージからメモリにロード)、使えるようにしてくれます。
import math
print(math.sqrt(16)) # 出力: 4.0
外部ライブラリとは
標準ライブラリには含まれていない、便利な追加ツールのことを指します。
こちらは、標準ライブラリと異なり、ネットからダウンロードして使用します。
具体的には、pip というパッケージマネージャーを使って管理することになります。
(例)requests, numpy, flask など
パッケージマネージャーとは
プログラムで使いたい「外部の便利なツール(=パッケージ)」を、探して・インストールして・管理してくれる仕組みです。
たとえば Python で requests というパッケージ(Webから情報を取得できる便利な道具)を使いたいと思ったとき、実はその requests を動かすには、内部的に他のパッケージも必要になります。
さらに、必要なパッケージの中にも「それを動かすために別のパッケージ」が必要だったりする…
という 「依存関係(依存パッケージ)」の問題が発生します。
これらを すべて手動で調べて1つずつインストールするのはとても大変ですし、ミスもしやすいです。
そこで登場するのが「パッケージマネージャー」です。
パッケージマネージャーは、例えば pip install requests のように命令するだけで
- requests 本体
- それに必要な依存パッケージすべて
を 自動でネットから取得し、ストレージに保存して、Pythonが使えるようにしてくれます。
このように、パッケージマネージャーがあるおかげで、効率的に外部ライブラリを利用できる環境が簡単に整うのです。
外部ライブラリを使えるようになるまでの流れ
通常はHomebrewで入れたPythonにはpip
が付属していますが、必要に応じて get-pip.py
で追加することも可能です
pip を使ってインストール
pip install requests
pip は、Pythonで使いたい外部ライブラリをネットから自動で探してきて、パソコン内に必要なファイルを保存し、使えるようにしてくれます。
pipがやっていること
-
PyPI(Python Package Index)というライブラリの集まった場所から、指定されたライブラリをネット経由で探します
-
ライブラリ本体をダウンロード(パッケージの中身をネット経由で取得)
該当するライブラリの圧縮ファイル(.whlや.tar.gz)をダウンロードします。
通常、これは一時的に /tmp のような場所に保存されます。 -
Pythonが使うフォルダ(たとえば site-packages)に保存
その中身(ライブラリ本体)を解凍し、Pythonのインストールディレクトリの中にあるsite-packages
フォルダ(標準でライブラリが置かれる場所)に保存されます。
(例)/opt/homebrew/lib/python3.12/site-packages/requests/
-
Pythonプログラムの中で
import requests
と書けば使えるようになる
一度インストールされたライブラリは ローカルに保存されている ので、オフラインでも使えます。
import requests
保存場所を確認するには
pip show requests
これでインストールされたパスが表示されます。
まとめ
標準ライブラリは、Pythonをインストールしたときに自動的にストレージに保存されるファイル群で、import
によって、すぐに使用できます。
一方、外部ライブラリは、pipというパッケージマネージャーを使ってインターネットから必要なライブラリをダウンロード・インストールすることで、ストレージに保存され、import
によって、使用できるようになります。
このような違いを理解しておくことで、状況に応じたライブラリの使い分けができるようになります。
なお、外部ライブラリには依存関係がある場合が多く、他のプロジェクトへの影響を避けるためにも、仮想環境の利用が推奨されます。
仮想環境については、次回以降で詳しく解説していきます。
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
https://it-infomation.com/module-package-library-difference/
https://python-hack.net/what-is-function/
https://www.kemmy-it.com/2024/11/10/python_verchal/
https://schoo.jp/matome/article/306
https://hogetech.info/linux/system/yum