パッケージとは
一言で言うと「他の人が書いたPythonコードをまとめたもの」です。よく使う機能を自分で一から書かなくて済むように、再利用できる形で配布されています。
具体例で理解する
たとえば unicornhat を使わずに LED を光らせようとすると:
python
# パッケージなし → 自分でSPI通信を全部書く必要がある
import spidev
import struct
import time
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 9000000
# ... 数百行のコード ...
unicornhat パッケージを使うと:
python
# パッケージあり → 難しい部分は全部隠れている
import unicornhat as uh
uh.set_pixel(0, 0, 255, 0, 0)
uh.show()
複雑な処理を「誰かがすでに書いてくれたコード」として呼び出すだけでよくなります。
パッケージの中身
パッケージは実体としてはただのフォルダです。
unicornhat/
├── __init__.py ← 「これはパッケージです」という印
├── unicornhat.py ← LEDを制御するコード本体
└── README.md ← 説明書
pip install unicornhat をすると、このフォルダが自分のPCにコピーされます。
~/unicorn-env/lib/python3.13/site-packages/
└── unicornhat.py ← ここに置かれる
import unicornhat と書くと、Pythonがこの場所を探して読み込みます。
標準ライブラリとの違い
Pythonには最初から使えるパッケージ(標準ライブラリ)と、追加でインストールするパッケージがあります。
python
# 標準ライブラリ → インストール不要、最初から使える
import datetime # 日時
import time # 時間待機
import math # 数学関数
import os # ファイル操作
# 外部パッケージ → pip install が必要
import unicornhat # Unicorn HAT制御
import requests # Web通信
import numpy # 数値計算
時計スクリプトで import datetime と import time がインストール不要だったのはこのためです。
モジュール・パッケージ・ライブラリの違い
似た言葉が混在しますが、大きさのイメージです。
ライブラリ(大)
└── パッケージ(中)
└── モジュール(小)= .py ファイル1個
日常会話では3つともほぼ同じ意味で使われるので、厳密に区別しなくても大丈夫です。
今回のプロジェクトで使っているパッケージ
python
import unicornhat # Pimoroniが作成・PyPIで公開
# → LEDの色・輝度・表示を制御
import datetime # Python標準
# → 現在時刻の取得
import time # Python標準
# → スクロールの待機(time.sleep)
パッケージのおかげで「LEDの信号をどう送るか」ではなく「何を表示するか」だけに集中してコードが書けています。