この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: ライブラリ
SEOタイトル: Python ライブラリ完全ガイド (標準 + 主要サードパーティ + pip)

この記事の要点
  • Python は 「電池付属 (batteries included)」: 標準ライブラリだけでも HTTP / JSON / 正規表現 / 並行処理が書ける
  • 標準: os / sys / json / re / datetime / collections / itertools / functools / pathlib / subprocess など 200+ モジュール
  • 主要サードパーティ: requests / numpy / pandas / scikit-learn / TensorFlow / PyTorch / Django / Flask / FastAPI / Selenium / BeautifulSoup
  • インストールは pip install パッケージ名。配布元は PyPI (Python Package Index)
  • 仕様は PEP (Python Enhancement Proposal)。標準は docs.python.org

Python ライブラリの全体像

Python のライブラリは大きく次の 3 階層に分かれます。

階層インストール
組み込み (Built-in)print, len, list, dict, 例外不要
標準ライブラリos, sys, json, re, datetime, collectionsPython に同梱
サードパーティrequests, numpy, django, fastapi, etc.pip install

標準ライブラリ: よく使うモジュール

モジュール用途主要 API
osOS 操作os.environ, os.getcwd(), os.makedirs()
sysインタプリタ操作sys.argv, sys.path, sys.exit()
pathlibパス操作 (推奨)Path('a/b').read_text()
jsonJSON 読み書きjson.loads(), json.dumps()
re正規表現re.search(), re.findall()
datetime日時datetime.now(), timedelta
collections追加コレクションdefaultdict, Counter, deque, namedtuple
itertoolsイテレータ操作chain, product, combinations, groupby
functools関数ユーティリティlru_cache, partial, reduce, cached_property
subprocess外部コマンド実行subprocess.run()
loggingログlogging.getLogger()
argparseCLI 引数ArgumentParser()
typing型ヒントList, Optional, Union
dataclassesレコード型@dataclass
asyncio非同期 I/Oasync/await, gather()
concurrent.futures並行実行ThreadPoolExecutor, ProcessPoolExecutor
sqlite3SQLitesqlite3.connect()
urllib.requestHTTP (簡易)urllib.request.urlopen()
hashlibハッシュsha256(), md5()
csvCSVcsv.DictReader, csv.writer

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

# pathlib: パス操作の現代標準
from pathlib import Path
p = Path('data/in.txt')
text = p.read_text(encoding='utf-8')
Path('out').mkdir(exist_ok=True)
for f in Path('logs').glob('*.log'):
    print(f.stat().st_size)

# collections.Counter: 出現回数集計
from collections import Counter
words = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']
Counter(words).most_common(2)   # [('apple', 3), ('banana', 2)]

# functools.lru_cache: メモ化
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n: int) -> int:
    return n if n < 2 else fib(n-1) + fib(n-2)

# datetime + timedelta
from datetime import datetime, timedelta
tomorrow = datetime.now() + timedelta(days=1)

# json: 設定ファイル読み書き
import json
config = json.loads(Path('config.json').read_text())
Path('config.json').write_text(json.dumps(config, indent=2, ensure_ascii=False))

主要サードパーティライブラリ

Web / HTTP

ライブラリ用途
requestsシンプルな HTTP クライアント
httpx非同期対応 HTTP (requests 互換)
aiohttpasyncio ネイティブの HTTP
Djangoフルスタック Web フレームワーク
Flaskマイクロ Web フレームワーク
FastAPI型ヒント駆動の非同期 Web (OpenAPI 自動生成)
Seleniumブラウザ自動操作
Playwrightモダンなブラウザ自動操作
BeautifulSoup (bs4)HTML / XML パーサ
lxml高速 XML / HTML
scrapyスクレイピングフレームワーク

データ分析 / 機械学習

ライブラリ用途
numpy多次元配列、ベクトル化計算
pandas表形式データ (DataFrame)
matplotlibグラフ描画
seaborn統計グラフ (matplotlib ラッパ)
plotlyインタラクティブグラフ
scikit-learn古典的機械学習 (回帰、分類、クラスタリング)
TensorFlow / KerasGoogle の深層学習
PyTorchMeta の深層学習 (研究で主流)
transformersHugging Face の LLM ライブラリ
scipy科学計算 (最適化、信号処理、統計)
statsmodels統計モデル (回帰分析、時系列)

ファイル / 業務系

ライブラリ用途
openpyxlExcel (.xlsx) 読み書き
xlsxwriterExcel 書き出し (グラフ等)
pandas.read_excelExcel → DataFrame
PyPDF2 / pypdfPDF 読み書き
reportlabPDF 生成
python-docxWord (.docx)
Pillow (PIL)画像処理
OpenCV (cv2)本格画像処理 / コンピュータビジョン
SQLAlchemyORM
psycopg2 / asyncpgPostgreSQL ドライバ
PyMySQLMySQL ドライバ
redisRedis クライアント
boto3AWS SDK

pip でのインストール

# 基本
pip install requests

# バージョン指定
pip install numpy==1.26.4
pip install "pandas>=2.0,<3.0"

# 複数まとめて
pip install -r requirements.txt

# 開発依存と本番依存
pip install -r requirements.txt        # 本番
pip install -r requirements-dev.txt    # 開発

# 一覧と凍結
pip list
pip freeze > requirements.txt

# アップグレード
pip install --upgrade requests

# アンインストール
pip uninstall requests

# venv (仮想環境) 推奨
python -m venv .venv
source .venv/bin/activate          # Linux/Mac
.venv\Scripts\activate.bat         # Windows
pip install -r requirements.txt

# Poetry (現代的な依存管理)
poetry init
poetry add requests
poetry add --dev pytest
poetry install

# uv (Rust 製の高速 pip 代替)
uv pip install requests

PyPI と仕様 (PEP)

  • PyPI (Python Package Index): https://pypi.org 公式パッケージリポジトリ。誰でも公開可能
  • PEP (Python Enhancement Proposal): 言語仕様や標準ライブラリの拡張提案。PEP 8 はコーディング規約、PEP 484 は型ヒント
  • Python Standard Library Reference: https://docs.python.org/3/library/ 公式ドキュメント
  • awesome-python: https://github.com/vinta/awesome-python 用途別の人気ライブラリリスト

サードパーティライブラリ利用例

# requests でシンプル HTTP
import requests
r = requests.get('https://api.github.com/users/python', timeout=10)
r.raise_for_status()
data = r.json()

# pandas で CSV 集計
import pandas as pd
df = pd.read_csv('sales.csv')
print(df.groupby('product')['amount'].sum())

# FastAPI で API サーバ
from fastapi import FastAPI
app = FastAPI()

@app.get('/users/{user_id}')
def get_user(user_id: int):
    return {'id': user_id, 'name': 'taro'}

# openpyxl で Excel 操作
from openpyxl import load_workbook
wb = load_workbook('report.xlsx')
ws = wb['Sheet1']
ws['A1'] = '売上'
wb.save('report.xlsx')

ライブラリ選定のポイント

  • メンテナンス: GitHub の最終コミットが 1 年以内か
  • スター数 / ダウンロード数: PyPI Stats / pepy.tech で確認
  • 型ヒント対応: 現代の Python では py.typed が望ましい
  • ライセンス: MIT / BSD / Apache が安全。GPL は配布制約がある
  • 標準で足りる?: 軽量タスクは標準で十分。むやみに依存を増やさない

FAQ

Q: 標準ライブラリだけでどこまでできる?
A: 小規模 Web サーバ (http.server)、HTTP クライアント (urllib.request)、CSV / JSON / SQLite まで全部可能。本格用途で requestspandas に置き換える形が定番。

Q: pip install が遅い / 失敗する
A: ネットワーク要因なら --index-url でミラー指定。ビルド失敗なら --only-binary=:all: で wheel のみに。最新は uv が圧倒的に速い。

Q: グローバルに pip install したくない
A: python -m venv .venv で仮想環境を作るのが標準。プロジェクトごとに分離できる。