Python ライブラリ

よく使うPythonライブラリ 50選

Web・データ分析・画像処理・機械学習・自動化など用途別に厳選した50ライブラリ。インストールコマンドと基本的な使い方のコード例付きで解説します。

📦 30ライブラリ収録 🎯 初心者〜中級者向け 💻 全てpipでインストール可能
50
ライブラリ紹介
6
カテゴリ
全て
pip対応
コード例
全件付き
💡
仮想環境でライブラリを管理しよう

外部ライブラリは 仮想環境(venv) の中にインストールするのが推奨です。プロジェクトごとにバージョンを分離できます。venvの使い方はこちら →

🌐

Web・HTTP

🌍
requests
WebHTTP初心者向け

PythonでHTTPリクエストを最も簡単に送れるライブラリ。GET・POST・PUT・DELETE、認証、セッション管理に対応。REST APIとの通信や、Webページの取得に必須です。「Python requests」は世界で最もダウンロードされているライブラリのひとつ。

pip install requests
import requests

# GETリクエスト
res = requests.get("https://api.example.com/users")
data = res.json()          # JSON自動パース
print(res.status_code)     # 200

# POSTリクエスト
res = requests.post(
    "https://api.example.com/login",
    json={"user": "alice", "password": "secret"},
    timeout=10
)
print(res.json())
httpx
Web非同期HTTP/2

requestsの上位互換で、非同期(async/await)に対応したモダンなHTTPクライアント。HTTP/2・タイムアウト・リトライ設定が充実。FastAPIのテストにも標準採用されています。大量リクエストを並列処理したい中級者以上に最適です。

pip install httpx
import httpx
import asyncio

# 同期(requestsと同じ感覚で使える)
with httpx.Client() as client:
    res = client.get("https://httpbin.org/get")
    print(res.json())

# 非同期(高速並列取得)
async def fetch_all(urls):
    async with httpx.AsyncClient() as client:
        tasks = [client.get(url) for url in urls]
        return await asyncio.gather(*tasks)

results = asyncio.run(fetch_all(["https://httpbin.org/get"] * 5))
🍲
BeautifulSoup4
WebスクレイピングHTML解析

HTMLやXMLを解析してデータを抽出するスクレイピングライブラリ。CSSセレクターやタグ名で要素を検索でき、直感的に使えます。requestsと組み合わせてWebページの情報を自動収集するツール開発に使います。

pip install beautifulsoup4 lxml
import requests
from bs4 import BeautifulSoup

html = requests.get("https://example.com").text
soup = BeautifulSoup(html, "lxml")

# タイトル取得
print(soup.title.text)

# 全リンクを取得
for a in soup.find_all("a", href=True):
    print(a["href"], a.get_text(strip=True))

# CSSセレクターで取得
items = soup.select("ul.menu > li > a")
🍶
Flask
Webフレームワーク軽量

シンプルで軽量なPython Webフレームワーク。数行のコードでWebアプリを作れる手軽さが魅力。REST API・プロトタイプ・小〜中規模のWebアプリ開発に最適。学習コストが低くDjangoへのステップアップにも使えます。

pip install flask
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, Flask!"

@app.route("/api/users", methods=["GET", "POST"])
def users():
    if request.method == "POST":
        data = request.json
        return jsonify({"created": data}), 201
    return jsonify({"users": ["Alice", "Bob"]})

if __name__ == "__main__":
    app.run(debug=True)  # http://localhost:5000
🚀
FastAPI
WebAPI非同期中級〜

型ヒントを活用した高速なWeb APIフレームワーク。自動でAPIドキュメント(Swagger UI)が生成されるのが大きな特徴。Node.jsと同等レベルの高速処理と、Pythonの型安全性を両立。現代のAPI開発のデファクトスタンダードになりつつあります。

pip install fastapi uvicorn
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    name: str
    age: int

@app.get("/users/{user_id}")
async def get_user(user_id: int):
    return {"id": user_id, "name": "Alice"}

@app.post("/users")
async def create_user(user: User):
    return {"created": user.model_dump()}

# 起動: uvicorn main:app --reload
# ドキュメント: http://localhost:8000/docs
🦄
Django
Webフレームワークフルスタック中級〜

Python最大の本格的Webフレームワーク。管理画面・認証・ORM・テンプレートエンジンが標準搭載の「バッテリー同梱」設計。大規模なWebアプリ・ECサイト・SNSなど複雑なシステムの開発に向いており、Instagram・PinterestもDjangoで作られています。

pip install django
from django.db import models
from django.http import HttpResponse
from django.views import View

# モデル定義(DBテーブルを自動生成)
class Article(models.Model):
    title = models.CharField(max_length=200)
    body  = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

# ビュー
class ArticleView(View):
    def get(self, request, pk):
        article = Article.objects.get(pk=pk)
        return HttpResponse(article.title)

# 起動: python manage.py runserver
# 管理画面: admin.site.register(Article)
🎭
Playwright
ブラウザ自動化E2Eテスト中級〜

Microsoftが開発したモダンなブラウザ自動化ライブラリ。Chrome・Firefox・SafariをSeleniumより高速・安定に操作できます。非同期対応・自動待機・スクリーンショット・PDF出力に標準対応。E2Eテスト自動化やスクレイピングの現代的な選択肢です。

pip install playwright && playwright install
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://example.com")

    # 要素操作(読み込みを自動で待つ)
    page.fill("input[name='q']", "Python")
    page.click("button[type='submit']")

    # スクリーンショット保存
    page.screenshot(path="result.png")

    # テキスト取得
    print(page.locator("h1").text_content())
    browser.close()
📊

データ分析

🔢
NumPy
数値計算配列行列

Pythonの数値計算の基盤となるライブラリ。多次元配列(ndarray)を高速に操作でき、行列演算・統計計算・線形代数などに対応。pandasやscikit-learnなど多くのライブラリの土台になっています。

pip install numpy
import numpy as np

# 配列の作成と演算
a = np.array([1, 2, 3, 4, 5])
print(a * 2)           # [2 4 6 8 10]
print(a.mean())        # 3.0
print(a.std())         # 1.414...

# 2次元配列(行列)
mat = np.zeros((3, 3))
eye = np.eye(3)        # 単位行列
print(np.dot(mat, eye))

# ブロードキャスト
b = np.arange(12).reshape(3, 4)
print(b + 10)          # 全要素に10加算
🐼
pandas
データ分析CSVExcel

表形式データの操作・分析に特化したライブラリ。CSV・Excel・SQLからデータを読み込み、フィルタリング・集計・結合・欠損値処理などをSQLライクな直感的な操作で実行できます。データサイエンスの現場では必須ツールです。

pip install pandas openpyxl
import pandas as pd

# CSV読み込み
df = pd.read_csv("data.csv", encoding="utf-8")

# 基本情報
print(df.shape)            # (行数, 列数)
print(df.describe())       # 統計サマリー

# フィルタリング・集計
adults = df[df["age"] >= 18]
by_city = df.groupby("city")["salary"].mean()

# Excel書き出し
df.to_excel("output.xlsx", index=False)
📈
Matplotlib
グラフ可視化グラフ描画

Pythonのグラフ描画ライブラリの定番。折れ線・棒・円・散布図・ヒストグラムなどあらゆる種類のグラフを描画できます。tkinterへの埋め込みも可能で、GUIアプリにグラフを組み込む際に活躍します。

pip install matplotlib japanize-matplotlib
import matplotlib.pyplot as plt
import japanize_matplotlib   # 日本語フォント対応

# 折れ線グラフ
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 6, 3]
plt.plot(x, y, marker="o", label="売上")
plt.title("月別売上推移")
plt.xlabel("月"); plt.ylabel("万円")
plt.legend(); plt.grid(True)

# 円グラフ
labels = ["食費", "家賃", "交通費", "娯楽"]
sizes = [35, 40, 10, 15]
plt.pie(sizes, labels=labels, autopct="%1.1f%%")

plt.show()
🗄️
SQLAlchemy
DBORM中級〜

PythonのデファクトスタンダードなORM(オブジェクト関係マッピング)。SQLを書かずにPythonのクラスでDBを操作できるORMモードと、生SQLを柔軟に扱えるCoreモードの2種類があります。SQLite・MySQL・PostgreSQL・Oracle など主要なDBに対応。

pip install sqlalchemy
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import DeclarativeBase, Session

engine = create_engine("sqlite:///app.db")

class Base(DeclarativeBase): pass

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    email = Column(String(100), unique=True)

Base.metadata.create_all(engine)

with Session(engine) as session:
    session.add(User(name="Alice", email="alice@example.com"))
    session.commit()
    users = session.query(User).all()
🔐
python-dotenv
環境変数設定管理初心者向け

.env ファイルから環境変数を読み込むライブラリ。APIキーやパスワードをコードに直接書かずに安全に管理できます。GitHubに .env をアップしないようにすることでシークレット情報の漏洩を防げます。

pip install python-dotenv
# .env ファイル(Gitに含めない!)
# API_KEY=your_secret_key
# DB_PASSWORD=password123

from dotenv import load_dotenv
import os

load_dotenv()   # .envを読み込む

api_key = os.getenv("API_KEY")
db_pass = os.getenv("DB_PASSWORD", "default")

print(api_key)   # your_secret_key
📉
Seaborn
可視化統計グラフ初心者向け

Matplotlibをベースにした統計データ可視化ライブラリ。少ないコードで美しい統計グラフ(ヒートマップ・バイオリンプロット・ペアプロット)を描画できます。pandasのDataFrameと直接連携し、データ分析の探索的可視化(EDA)に最適です。

pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt

# サンプルデータ読み込み
tips = sns.load_dataset("tips")

# 散布図 + 回帰直線
sns.regplot(data=tips, x="total_bill", y="tip")

# ヒートマップ(相関行列)
corr = tips.select_dtypes("number").corr()
sns.heatmap(corr, annot=True, cmap="coolwarm", fmt=".2f")

# ペアプロット(全変数の関係を一覧表示)
sns.pairplot(tips, hue="sex")

plt.show()
Polars
データ分析高速DataFrame

Rustで書かれた超高速なDataFrameライブラリ。pandasより数倍〜数十倍高速で大規模データ処理に強みがあります。遅延評価(Lazy API)による自動最適化と型安全なAPIが特徴。「pandasの代替」として近年急速に採用が広がっています。

pip install polars
import polars as pl

# CSV読み込み・フィルタリング・集計
df = pl.read_csv("data.csv")

result = (
    df
    .filter(pl.col("age") >= 18)
    .group_by("city")
    .agg(
        pl.col("salary").mean().alias("avg_salary"),
        pl.len().alias("count")
    )
    .sort("avg_salary", descending=True)
)
print(result)

# 遅延評価(大規模データ向け)
lazy = df.lazy().filter(pl.col("score") > 90).collect()
📊
Plotly
インタラクティブ可視化3Dグラフ

ブラウザ上でインタラクティブに操作できるグラフを生成するライブラリ。ズーム・パン・ホバー情報表示が標準で使え、3Dグラフ・地図・アニメーショングラフにも対応。DashというWebダッシュボードフレームワークと組み合わせると強力なデータアプリを作れます。

pip install plotly
import plotly.express as px
import plotly.graph_objects as go

# 散布図(ホバーで詳細表示)
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length",
                 color="species", title="アイリスデータセット")
fig.show()   # ブラウザで開く

# インタラクティブ棒グラフ
fig = go.Figure(go.Bar(
    x=["1月", "2月", "3月"],
    y=[120, 180, 150],
    text=[120, 180, 150], textposition="auto"
))
fig.update_layout(title="月別売上")
fig.write_html("chart.html")   # HTMLとして保存
🖼️

画像・映像処理

🖼️
Pillow(PIL)
画像処理変換初心者向け

Pythonで画像を開く・保存・変換・加工するための定番ライブラリ。リサイズ・切り抜き・回転・フィルター・テキスト描画・フォーマット変換(JPG・PNG・GIF・WEBP等)に対応。tkinterでの画像表示にも必須です。

pip install pillow
from PIL import Image, ImageFilter, ImageDraw, ImageFont

img = Image.open("photo.jpg")

# リサイズ
img_resized = img.resize((800, 600))

# フィルター
img_blur = img.filter(ImageFilter.GaussianBlur(radius=3))
img_gray = img.convert("L")  # グレースケール

# テキスト描画
draw = ImageDraw.Draw(img)
draw.text((10, 10), "Hello!", fill="white")

img.save("output.png")
👁️
OpenCV (opencv-python)
コンピュータビジョン動画処理中級〜

コンピュータビジョン(画像認識)の世界標準ライブラリ。顔検出・物体検出・動画処理・カメラキャプチャ・輪郭抽出などに対応。リアルタイム処理が得意で、C++で書かれた高速なコアをPythonから呼び出せます。

pip install opencv-python
import cv2

# 画像読み込みと変換
img = cv2.imread("photo.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)

# 顔検出
face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
)
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

cv2.imshow("Result", img); cv2.waitKey(0)
📱
qrcode
QRコード画像生成初心者向け

URLやテキストからQRコード画像を生成するライブラリ。数行のコードで即座にQRコードを作成でき、色・サイズ・エラー訂正レベルのカスタマイズも可能。名刺・ポスター・Webサイト用のQRコード生成ツール開発に使えます。

pip install qrcode pillow
import qrcode
from PIL import Image

# シンプルなQRコード生成
qr = qrcode.make("https://pythonland.example.com")
qr.save("qr.png")

# カスタマイズ版
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4,
)
qr.add_data("https://pythonland.example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="darkblue", back_color="white")
img.save("qr_custom.png")
🎬
MoviePy
動画編集GIF生成中級〜

Pythonで動画の切り出し・結合・テキスト追加・速度変更・GIF変換などを行うライブラリ。ffmpegをラップしており動画処理スクリプトを簡潔に書けます。字幕入れ・スライドショー生成・動画圧縮ツールなどの自動化に活用できます。

pip install moviepy
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip

# 動画を読み込んで一部を切り出し
clip = VideoFileClip("input.mp4")
trimmed = clip.subclip(10, 30)   # 10秒〜30秒を切り出し

# テキストを重ねる
txt = TextClip("Hello, Python!", fontsize=50, color="white")
txt = txt.set_position("center").set_duration(5)
final = CompositeVideoClip([trimmed, txt])

# 保存
final.write_videofile("output.mp4", fps=24)

# GIF変換
clip.subclip(0, 3).write_gif("preview.gif", fps=10)
🔍
pytesseract
OCR文字認識中級〜

画像やPDFから文字を読み取るOCR(光学文字認識)ライブラリ。Google製Tesseract OCRエンジンのPythonラッパーです。名刺・領収書・スキャンした書類からテキストを抽出する自動化ツール開発に使えます。日本語を含む100以上の言語に対応。

pip install pytesseract pillow
import pytesseract
from PIL import Image

# 画像からテキスト抽出
img = Image.open("document.png")
text = pytesseract.image_to_string(img, lang="jpn")
print(text)

# 詳細情報付き(位置・信頼度)
data = pytesseract.image_to_data(
    img, lang="jpn",
    output_type=pytesseract.Output.DICT
)
for i, word in enumerate(data["text"]):
    if word.strip():
        print(f"{word} (信頼度: {data['conf'][i]}%)")
🤖

機械学習・AI

🧠
scikit-learn
機械学習分類回帰中級〜

機械学習アルゴリズムを統一されたAPIで提供するライブラリ。決定木・ランダムフォレスト・SVM・k近傍法・線形回帰など多数のアルゴリズムと、前処理・モデル評価・パイプライン機能が揃っています。深層学習以外のMLはほぼこれで対応できます。

pip install scikit-learn
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# データ準備
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
# 学習・予測・評価
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(f"精度: {accuracy_score(y_test, pred):.2%}")
🔥
PyTorch
深層学習GPU上級〜

Facebookが開発した深層学習フレームワーク。動的計算グラフによる直感的なコーディングが特徴で、研究分野では世界シェアNo.1。CNNや Transformer などあらゆるニューラルネットワークを実装でき、GPU加速にも対応しています。

pip install torch torchvision
import torch
import torch.nn as nn

# シンプルなニューラルネットワーク
class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.layers = nn.Sequential(
            nn.Linear(784, 128),
            nn.ReLU(),
            nn.Linear(128, 10)
        )
    def forward(self, x):
        return self.layers(x)

model = Net()
x = torch.randn(32, 784)   # バッチサイズ32
out = model(x)
print(out.shape)             # torch.Size([32, 10])
💬
openai
LLMChatGPTAPI

OpenAI APIの公式Pythonクライアント。ChatGPT(GPT-4o)・DALL-E・Whisper・Embeddings などOpenAIの各モデルをPythonから簡単に呼び出せます。チャットボット・文章要約・コード生成・画像生成ツールを素早く作れます。

pip install openai
from openai import OpenAI

client = OpenAI()   # OPENAI_API_KEY環境変数を自動読み込み

# チャット
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたはPythonの先生です"},
        {"role": "user",   "content": "forループを簡単に説明して"}
    ]
)
print(response.choices[0].message.content)
🤗
transformers(HuggingFace)
LLM自然言語処理画像認識上級〜

HuggingFaceが提供する大規模言語モデル(LLM)・画像認識・音声認識などのAIモデルを統一APIで使えるライブラリ。BERT・GPT・LLaMA・WhisperなどのSOTAモデルを数行のコードでダウンロードして実行できます。AI研究・開発の標準ライブラリです。

pip install transformers torch
from transformers import pipeline

# 感情分析
classifier = pipeline("sentiment-analysis")
result = classifier("I love Python programming!")
print(result)  # [{'label': 'POSITIVE', 'score': 0.9998}]

# 日本語テキスト生成
generator = pipeline("text-generation",
                     model="rinna/japanese-gpt2-medium")
output = generator("Pythonは", max_length=50)
print(output[0]["generated_text"])

# 翻訳(英→日)
translator = pipeline("translation_en_to_ja",
                      model="Helsinki-NLP/opus-mt-en-jap")
print(translator("Hello, World!"))
🧬
anthropic
LLMClaude APIAI

Anthropic社のAI「Claude」をPythonから呼び出す公式SDKです。Claude 3.5 Sonnet・Opus・Haikuなど最新モデルを使ったチャットボット・文章要約・コード生成・データ分析ツールを素早く開発できます。プロンプトキャッシングや長いコンテキスト処理が強みです。

pip install anthropic
import anthropic

client = anthropic.Anthropic()  # ANTHROPIC_API_KEY環境変数を自動読み込み

# チャット
message = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Pythonのリスト内包表記を教えてください"}
    ]
)
print(message.content[0].text)

# ストリーミング(リアルタイム出力)
with client.messages.stream(
    model="claude-opus-4-5",
    max_tokens=256,
    messages=[{"role": "user", "content": "こんにちは!"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
⚙️

自動化・ツール

🕹️
Selenium
ブラウザ自動化テスト中級〜

ブラウザを自動操作するライブラリ。Webサイトへのログイン・フォーム入力・ボタンクリック・スクリーンショット取得などをコードで自動実行できます。JavaScriptで動的に生成されるコンテンツのスクレイピングにも有効。

pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install())
)
driver.get("https://www.google.com")

# 検索ボックスに入力
box = driver.find_element(By.NAME, "q")
box.send_keys("Python tkinter\n")

# 結果を取得
results = driver.find_elements(By.CSS_SELECTOR, "h3")
for r in results[:5]:
    print(r.text)

driver.quit()
🖱️
PyAutoGUI
GUI自動化マウス操作キーボード

マウス操作・キーボード入力・スクリーンショットをコードで自動化するライブラリ。デスクトップアプリの自動テストや、繰り返し作業の自動化に使えます。Excelの操作自動化・定型業務の自動化など幅広い用途があります。

pip install pyautogui pillow
import pyautogui
import time

# マウス移動・クリック
pyautogui.moveTo(100, 200, duration=0.5)
pyautogui.click()
pyautogui.doubleClick(300, 400)

# キーボード入力
pyautogui.typewrite("Hello, Python!", interval=0.05)
pyautogui.hotkey("ctrl", "c")   # コピー

# スクリーンショット
img = pyautogui.screenshot()
img.save("screen.png")

# 画像を画面上で検索
pos = pyautogui.locateCenterOnScreen("button.png")
if pos:
    pyautogui.click(pos)
schedule
定期実行スケジューラー初心者向け

シンプルな記法でタスクを定期実行するスケジューラーライブラリ。「毎日9時に実行」「10分ごとに実行」などを人間に読みやすい書き方で設定できます。バックグラウンドで動かす定期処理・通知・データ収集に便利です。

pip install schedule
import schedule
import time

def send_report():
    print("日報を送信しました")

def backup_data():
    print("バックアップ実行")

# スケジュール設定
schedule.every().day.at("09:00").do(send_report)
schedule.every(10).minutes.do(backup_data)
schedule.every().monday.at("08:30").do(send_report)

# 実行ループ
while True:
    schedule.run_pending()
    time.sleep(1)
tqdm
プログレスバーUX改善初心者向け

ループ処理にプログレスバーを表示するライブラリ。既存の for ループを1行変更するだけで、処理の進捗・残り時間・速度をターミナルにリアルタイム表示できます。時間のかかるバッチ処理や機械学習の学習進捗表示に便利。

pip install tqdm
from tqdm import tqdm
import time

# リストに適用するだけ
for i in tqdm(range(100), desc="処理中"):
    time.sleep(0.01)
# 処理中: 100%|████████| 100/100 [00:01<00:00, 99.5it/s]

# ネストも可能
for batch in tqdm(batches, desc="Epoch"):
    for sample in tqdm(batch, leave=False):
        train(sample)

# 手動更新
with tqdm(total=200) as pbar:
    pbar.update(50)
    pbar.set_description("フェーズ1完了")
📗
openpyxl
Excel自動化初心者向け

Excelファイル(.xlsx)を読み書きするライブラリ。セルへの値書き込み・書式設定・グラフ作成・数式入力などExcelの多くの操作をPythonで自動化できます。業務自動化で最もよく使われるライブラリのひとつです。

pip install openpyxl
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Alignment

# 新規作成
wb = Workbook()
ws = wb.active
ws.title = "売上データ"

# ヘッダー(太字・背景色)
ws["A1"] = "商品名"
ws["A1"].font = Font(bold=True, size=12)
ws["A1"].fill = PatternFill("solid", fgColor="4472C4")

# データ書き込み
for i, row in enumerate(data, 2):
    ws.cell(row=i, column=1, value=row["name"])
    ws.cell(row=i, column=2, value=row["sales"])

wb.save("report.xlsx")
Pydantic
データ検証型安全中級〜

型ヒントを使ってデータの検証・変換を行うライブラリ。Pythonのデータクラスを定義するだけで、自動的に型チェック・バリデーション・JSON変換が行われます。FastAPIの内部でも使用されており、APIの入出力データ管理に非常に有効です。

pip install pydantic
from pydantic import BaseModel, EmailStr, field_validator

class User(BaseModel):
    name: str
    age: int
    email: str

    @field_validator("age")
    @classmethod
    def age_must_be_positive(cls, v):
        if v < 0:
            raise ValueError("年齢は0以上でなければなりません")
        return v

# 自動バリデーション
user = User(name="Alice", age=25, email="alice@example.com")
print(user.model_dump_json())

# 型不一致は自動変換
user2 = User(name="Bob", age="30", email="bob@example.com")
📧
yagmail
メール送信Gmail初心者向け

GmailをPythonから簡単に送信できるライブラリ。標準の smtplib より大幅に少ないコードで添付ファイル・HTML形式のメールを送信できます。定期レポートの自動送信・エラー通知メール・フォーム送信の自動化などに使えます。

pip install yagmail
import yagmail

# 初回のみパスワードをキーチェーンに保存
# yagmail.register("your@gmail.com", "パスワード")

yag = yagmail.SMTP("your@gmail.com")

# テキストメール
yag.send(
    to="recipient@example.com",
    subject="Pythonからの自動送信テスト",
    contents="こんにちは!Pythonから送信しました。"
)

# 添付ファイル付き・HTML形式
yag.send(
    to="recipient@example.com",
    subject="月次レポート",
    contents=["<h1>月次レポート</h1><p>添付をご確認ください。</p>",
              "report.xlsx"]  # ファイルパスをリストに追加
)
📝
python-docx
Word文書自動化初心者向け

Word文書(.docx)をPythonで作成・編集するライブラリ。見出し・段落・表・画像・フォント設定などWordの主要機能を操作できます。議事録・契約書・報告書の自動生成や、テンプレートからの一括文書作成に活躍します。

pip install python-docx
from docx import Document
from docx.shared import Pt, RGBColor

doc = Document()

# 見出し
doc.add_heading("Pythonで自動生成した報告書", level=1)

# 段落(フォント設定付き)
para = doc.add_paragraph()
run = para.add_run("本日の作業内容を報告します。")
run.font.size = Pt(12)
run.font.color.rgb = RGBColor(0x1a, 0x1a, 0x2e)

# 表の作成
table = doc.add_table(rows=3, cols=3)
table.style = "Table Grid"
table.cell(0, 0).text = "項目"
table.cell(0, 1).text = "結果"

doc.save("report.docx")
📄
fpdf2
PDF生成帳票初心者向け

PDFファイルをゼロから生成するライブラリ。テキスト・画像・図形・表を自由に配置でき、日本語フォントにも対応。請求書・領収書・証明書・レポートなどのPDF帳票を自動生成するシステムに利用されます。外部ソフト不要でPDFを作成できます。

pip install fpdf2
from fpdf import FPDF

class PDF(FPDF):
    def header(self):
        self.set_font("Helvetica", "B", 14)
        self.cell(0, 10, "Monthly Report", align="C", new_x="LMARGIN", new_y="NEXT")

    def footer(self):
        self.set_y(-15)
        self.set_font("Helvetica", "I", 8)
        self.cell(0, 10, f"Page {self.page_no()}", align="C")

pdf = PDF()
pdf.add_page()
pdf.set_font("Helvetica", size=12)
pdf.cell(0, 10, "Hello, PDF World!", new_x="LMARGIN", new_y="NEXT")
pdf.multi_cell(0, 8, "fpdf2 で日本語PDFを生成するには\nfont_familyに日本語フォントを追加します。")
pdf.output("output.pdf")
🕐
Arrow
日時操作タイムゾーン初心者向け

Pythonの標準 datetime より直感的に日時を操作できるライブラリ。タイムゾーン変換・相対的な日時表現(「3時間後」「先週の月曜」)・人間に読みやすい表示(「2時間前」)などが簡単に書けます。ログ解析・スケジュール管理ツールに便利です。

pip install arrow
import arrow

# 現在時刻(タイムゾーン付き)
now = arrow.now("Asia/Tokyo")
print(now.format("YYYY-MM-DD HH:mm:ss"))  # 2025-04-14 09:00:00

# 相対的な日時操作
tomorrow    = now.shift(days=1)
next_monday = now.shift(weekday=0)
three_ago   = now.shift(hours=-3)

# 人間に読みやすい表示
print(now.humanize(locale="ja"))   # 数秒前

# 文字列→arrowオブジェクト
dt = arrow.get("2025-12-31", "YYYY-MM-DD")
print(dt.to("UTC"))   # UTC変換
👁️
watchdog
ファイル監視自動化中級〜

ファイルやディレクトリの変更をリアルタイムで監視するライブラリ。ファイルの作成・更新・削除・移動を検知してコールバック関数を自動実行できます。「CSVが更新されたら自動処理」「画像が追加されたらリサイズ」などの自動化に使えます。

pip install watchdog
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print(f"新規ファイル作成: {event.src_path}")

    def on_modified(self, event):
        if not event.is_directory:
            print(f"ファイル変更: {event.src_path}")

observer = Observer()
observer.schedule(MyHandler(), path="./watch_dir", recursive=True)
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()
🛠️

開発・テスト・ユーティリティ

🧪
pytest
テストユニットテスト中級〜

Pythonで最も広く使われているテストフレームワーク。シンプルな assert 文でテストを書け、フィクスチャ・パラメータ化テスト・カバレッジ計測などが充実。標準のunittestより直感的で、プロの現場では必須スキルです。

pip install pytest pytest-cov
# test_calculator.py
import pytest
from calculator import add, divide

def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0

def test_divide_by_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

@pytest.mark.parametrize("a,b,expected", [
    (1, 2, 3), (0, 0, 0), (-1, 1, 0),
])
def test_add_parametrized(a, b, expected):
    assert add(a, b) == expected

# 実行: pytest test_calculator.py -v --cov=.
Rich
ターミナルカラー出力初心者向け

ターミナルに美しい出力を表示するライブラリ。色付きテキスト・テーブル・プログレスバー・シンタックスハイライト付きコード・マークダウンをターミナルで表示できます。CLIツール開発や、デバッグ時のprint出力を見やすくするのに使えます。

pip install rich
from rich import print
from rich.console import Console
from rich.table import Table
from rich.progress import track

console = Console()

# カラー・スタイル付き出力
console.print("[bold green]成功![/] ファイルを保存しました")
console.print("[red]エラー:[/] ファイルが見つかりません")

# テーブル表示
table = Table(title="ユーザー一覧")
table.add_column("名前"); table.add_column("年齢")
table.add_row("Alice", "25"); table.add_row("Bob", "30")
console.print(table)

# プログレスバー
for item in track(range(100), description="処理中..."):
💻
Click
CLIツールコマンドライン中級〜

Pythonでコマンドラインインターフェース(CLIツール)を作るためのフレームワーク。デコレーターを使ってコマンド・オプション・引数を定義でき、ヘルプテキストの自動生成・型変換・プロンプト入力にも対応。FlaskのCLIでも内部使用されています。

pip install click
import click

@click.group()
def cli():
    """PythonLand CLI ツール"""
    pass

@cli.command()
@click.option("--name", "-n", default="World", help="挨拶する名前")
@click.option("--count", "-c", default=1, type=int)
def greet(name, count):
    """挨拶するコマンド"""
    for _ in range(count):
        click.echo(f"Hello, {name}!")

@cli.command()
@click.argument("filepath", type=click.Path(exists=True))
def info(filepath):
    """ファイル情報を表示"""
    click.echo(f"ファイル: {filepath}")

if __name__ == "__main__":
    cli()
# 使用: python app.py greet --name Alice --count 3
📋
Loguru
ロギングデバッグ初心者向け

標準の logging モジュールより圧倒的に簡単に使えるロギングライブラリ。from loguru import logger の1行でカラフルなログ出力・ファイルへの書き込み・ログローテーションが始まります。例外の自動キャッチ機能も便利。

pip install loguru
from loguru import logger

# すぐ使えるシンプルなロギング
logger.debug("デバッグ情報")
logger.info("処理開始: {}", "main.py")
logger.warning("注意: ディスク残量が少ない")
logger.error("エラーが発生しました")

# ファイル出力(自動ローテーション付き)
logger.add(
    "logs/app_{time}.log",
    rotation="1 day",       # 1日ごとにローテーション
    retention="7 days",     # 7日分保持
    level="INFO"
)

# 例外の自動キャッチ
@logger.catch
def risky_function():
    return 1 / 0
📦
PyInstaller
exe化配布パッケージング

PythonスクリプトをWindows(.exe)・Mac・Linux の実行ファイルに変換するライブラリ。Pythonが入っていない環境でもアプリを動かせるようになります。tkinterで作ったGUIアプリを友人や職場の人に配布したいときに使います。

pip install pyinstaller
# コマンドラインで実行(Pythonコードではなく)

# シンプルな1ファイルexeを作成
# pyinstaller --onefile app.py

# ウィンドウアプリ(コンソールなし)
# pyinstaller --onefile --windowed --icon=icon.ico app.py

# distフォルダにexeが生成される
# dist/app.exe

# 注意:同じOS上でビルドすること
# (Windowsで.exeを作る、Macで.appを作る)
🔒
Paramiko
SSHSFTPサーバー操作中級〜

SSHプロトコルを使ってリモートサーバーに接続・コマンド実行・ファイル転送(SFTP)を行うライブラリ。サーバーの自動デプロイスクリプト・リモートバックアップ・サーバー監視ツールなどインフラ自動化に活躍します。

pip install paramiko
import paramiko

# SSHクライアント
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.100", username="user", password="pass")

# リモートコマンド実行
stdin, stdout, stderr = ssh.exec_command("ls -la /var/www")
print(stdout.read().decode())

# SFTPでファイル転送
sftp = ssh.open_sftp()
sftp.put("local_file.txt", "/remote/path/file.txt")  # アップロード
sftp.get("/remote/log.txt", "downloaded_log.txt")     # ダウンロード

sftp.close(); ssh.close()
⌨️
Typer
CLIツール型ヒント中級〜

型ヒントだけでCLIツールを作れるモダンなフレームワーク。Clickをベースに、関数の型アノテーションから自動でオプション・引数・ヘルプを生成します。Richとの統合で美しいエラー表示にも対応。FastAPIの作者が開発した次世代CLIライブラリです。

pip install typer
import typer
from typing import Optional

app = typer.Typer()

@app.command()
def greet(
    name: str,
    count: int = typer.Option(1, help="繰り返し回数"),
    loud: bool = typer.Option(False, "--loud", "-l", help="大文字で出力"),
):
    """名前を挨拶するコマンド"""
    for _ in range(count):
        msg = f"Hello, {name}!"
        typer.echo(msg.upper() if loud else msg)

@app.command()
def bye(name: str):
    """さよならを言うコマンド"""
    typer.echo(f"Goodbye, {name}!")

if __name__ == "__main__":
    app()
# 使用: python app.py greet Alice --count 3 --loud
🔬
mypy
型チェック静的解析中級〜

Pythonコードの型アノテーションを静的に検査するツール。実行前に型の不一致・存在しない属性・None参照など多くのバグを検出できます。大規模開発での品質担保や、チーム開発でのコード可読性向上に必須。VS Code / JetBrains とも連携します。

pip install mypy
# app.py
def add(x: int, y: int) -> int:
    return x + y

def greet(name: str) -> str:
    return f"Hello, {name}!"

# 型エラーの例(mypyが検出してくれる)
result = add("hello", 1)   # エラー: str を int に渡している
nums: list[int] = [1, 2, "three"]  # エラー: str が混入

# コマンドラインで実行
# mypy app.py
# app.py:8: error: Argument 1 to "add" has incompatible type "str"; expected "int"
🖤
Black
コードフォーマッター自動整形初心者向け

「妥協しない」コードフォーマッターで、Pythonコードを一定のスタイルに自動整形します。インデント・クォート・行長・空行などを統一し、コードレビューでスタイルを議論する必要がなくなります。保存時に自動実行するようVS Codeと連携するのが定番の使い方です。

pip install black
# 整形前(バラバラなスタイル)
x=1
y =  2
def   foo( a,b,c ):
    return a+b+c
my_list = [1,2,    3,4]

# black を実行: black app.py

# 整形後(Blackが統一)
x = 1
y = 2


def foo(a, b, c):
    return a + b + c


my_list = [1, 2, 3, 4]

# VS Codeで保存時に自動整形するには settings.json に:
# "editor.formatOnSave": true,
# "python.formatting.provider": "black"
☁️
boto3
AWSクラウドS3・Lambda中級〜

AWSの各種サービスをPythonから操作する公式SDK。S3へのファイルアップロード・DynamoDBの操作・Lambda関数の呼び出し・EC2インスタンスの制御など200以上のAWSサービスに対応。クラウドを使ったバックエンド・データ処理・自動化に必須です。

pip install boto3
import boto3

# S3バケットにファイルをアップロード
s3 = boto3.client("s3",
    aws_access_key_id="YOUR_KEY",
    aws_secret_access_key="YOUR_SECRET",
    region_name="ap-northeast-1"
)

# アップロード
s3.upload_file("local_file.txt", "my-bucket", "remote/path/file.txt")

# ダウンロード
s3.download_file("my-bucket", "remote/path/file.txt", "downloaded.txt")

# バケット内のファイル一覧
response = s3.list_objects_v2(Bucket="my-bucket")
for obj in response.get("Contents", []):
    print(obj["Key"], obj["Size"])
📋
pyperclip
クリップボードコピー・ペースト初心者向け

クリップボードへのテキストコピー・取得をクロスプラットフォームで行うライブラリ。パスワード生成ツール・テキスト整形ツール・コード補助ツールなど、「ワンクリックでコピー」機能を簡単に実装できます。

pip install pyperclip
import pyperclip

# クリップボードにコピー
pyperclip.copy("コピーしたいテキスト")

# クリップボードから取得
text = pyperclip.paste()
print(text)

# 実用例:パスワードをクリップボードにコピー
import random, string
password = "".join(
    random.choices(string.ascii_letters + string.digits, k=16)
)
pyperclip.copy(password)
print("パスワードをクリップボードにコピーしました")
🔐
cryptography
暗号化セキュリティ中級〜

AES・RSA・Fernet などの暗号化アルゴリズムをPythonで扱えるライブラリ。パスワードの安全なハッシュ化(bcrypt)・データの暗号化・TLS証明書操作などセキュリティ関連機能が充実。パスワードマネージャーや機密データ管理ツールに必須。

pip install cryptography
from cryptography.fernet import Fernet

# 鍵の生成(安全な場所に保存すること)
key = Fernet.generate_key()
f = Fernet(key)

# 暗号化
message = b"秘密のメッセージ"
encrypted = f.encrypt(message)
print(encrypted)   # 暗号化されたバイト列

# 復号
decrypted = f.decrypt(encrypted)
print(decrypted.decode())   # 秘密のメッセージ
🔊
pyttsx3
音声合成TTS初心者向け

テキストを音声に変換するTTS(Text-to-Speech)ライブラリ。インターネット接続不要でオフライン動作し、Windows・Mac・Linuxのシステム音声を使います。読み上げアプリ・アクセシビリティ機能・通知音声など幅広い用途があります。

pip install pyttsx3
import pyttsx3

engine = pyttsx3.init()

# 基本の読み上げ
engine.say("こんにちは、PythonLandへようこそ!")
engine.runAndWait()

# 音声設定
engine.setProperty("rate", 150)     # 速度(デフォルト200)
engine.setProperty("volume", 0.9)   # 音量(0.0〜1.0)

# 利用可能な音声一覧
for voice in engine.getProperty("voices"):
    print(voice.id, voice.name)

engine.say("速度を変えました")
engine.runAndWait()
📊
psutil
システム情報プロセスモニタリング

CPU・メモリ・ディスク・ネットワーク・プロセスのシステム情報を取得するライブラリ。タスクマネージャーのようなシステム監視ツール・リソース使用量の記録・自動化スクリプトでの負荷監視などに使います。

pip install psutil
import psutil

# CPU情報
print(f"CPU使用率: {psutil.cpu_percent(interval=1)}%")
print(f"CPUコア数: {psutil.cpu_count()}")

# メモリ情報
mem = psutil.virtual_memory()
print(f"メモリ使用率: {mem.percent}%")
print(f"使用中: {mem.used / 1024**3:.1f} GB")

# ディスク情報
disk = psutil.disk_usage("/")
print(f"ディスク使用率: {disk.percent}%")

# プロセス一覧
for proc in psutil.process_iter(["pid", "name", "cpu_percent"]):
    print(proc.info)

ライブラリ早見表

ライブラリ主な用途難易度pip コマンド
requestsHTTP通信・APIリクエスト★☆☆pip install requests
httpx非同期HTTP通信★★☆pip install httpx
BeautifulSoup4HTML解析・スクレイピング★☆☆pip install beautifulsoup4
Flask軽量Webフレームワーク★★☆pip install flask
FastAPI高速Web API開発★★★pip install fastapi uvicorn
NumPy数値計算・行列演算★★☆pip install numpy
pandasデータ分析・CSV/Excel操作★★☆pip install pandas
Matplotlibグラフ・データ可視化★★☆pip install matplotlib
SQLAlchemyDB操作(ORM)★★★pip install sqlalchemy
python-dotenv環境変数管理★☆☆pip install python-dotenv
Pillow画像処理・変換★☆☆pip install pillow
OpenCVコンピュータビジョン★★★pip install opencv-python
qrcodeQRコード生成★☆☆pip install qrcode
scikit-learn機械学習★★★pip install scikit-learn
PyTorch深層学習★★★pip install torch
openaiChatGPT・OpenAI API★★☆pip install openai
Seleniumブラウザ自動操作★★☆pip install selenium
PyAutoGUIGUI・マウス自動操作★★☆pip install pyautogui
schedule定期タスク実行★☆☆pip install schedule
tqdmプログレスバー表示★☆☆pip install tqdm
openpyxlExcel操作・自動化★☆☆pip install openpyxl
Pydanticデータ検証・型安全★★☆pip install pydantic
pytestテストフレームワーク★★☆pip install pytest
Rich美しいターミナル出力★☆☆pip install rich
ClickCLIツール作成★★☆pip install click
Loguruロギング★☆☆pip install loguru
PyInstallerexe化・配布★★☆pip install pyinstaller
ParamikoSSH・SFTP通信★★★pip install paramiko
pyperclipクリップボード操作★☆☆pip install pyperclip
cryptography暗号化・セキュリティ★★★pip install cryptography
pyttsx3音声合成(TTS)★☆☆pip install pyttsx3
psutilシステム情報取得★☆☆pip install psutil
DjangoフルスタックWebフレームワーク★★★pip install django
Playwrightモダンブラウザ自動化・E2Eテスト★★☆pip install playwright
Seaborn統計グラフ可視化★☆☆pip install seaborn
Polars高速DataFrame(pandas代替)★★☆pip install polars
Plotlyインタラクティブグラフ★★☆pip install plotly
MoviePy動画編集・GIF生成★★☆pip install moviepy
pytesseractOCR(画像から文字認識)★★☆pip install pytesseract
transformersLLM・自然言語処理(HuggingFace)★★★pip install transformers
anthropicClaude AI API★★☆pip install anthropic
yagmailGmailメール送信★☆☆pip install yagmail
python-docxWord文書の作成・編集★☆☆pip install python-docx
fpdf2PDF生成・帳票★★☆pip install fpdf2
Arrow日時操作・タイムゾーン★☆☆pip install arrow
watchdogファイル・ディレクトリ監視★★☆pip install watchdog
Typer型ヒントでCLIツール作成★★☆pip install typer
mypy静的型チェック★★☆pip install mypy
Blackコード自動フォーマット★☆☆pip install black
boto3AWS SDK(S3・Lambda等)★★★pip install boto3
🚀
ライブラリを実際に使ってみよう

ライブラリの知識を実践で活かすなら、サンプルアプリを作るのが最速の習得法です。