概要(pip installは「必要なライブラリを安全に取り込む」ための入口)
pipはPythonのパッケージ管理ツール。pip installで外部ライブラリを追加し、アップグレードやアンインストール、依存の固定化(requirements.txt)まで担います。重要なのは、仮想環境内で使うこと、正しいバージョン指定、インストール確認とトラブル対処の型、そして再現性(同じ環境を誰でも作れる)です。
基本の使い方(最短のインストールから確認まで)
インストールとバージョン指定の基本
- 最新を入れる: pip install requests
- 特定バージョン固定: pip install requests==2.31.0
- 互換範囲を許容: pip install “requests>=2.31,<2.33”
- アップグレード: pip install –upgrade requests
- アンインストール: pip uninstall requests
インストール後はPythonで import に成功するか、pip show パッケージ名 でインストール先・バージョンを確認します。
仮想環境での実行(推奨)
仮想環境を有効化してからpipを使うと、プロジェクトごとに依存が分離されます。python -m venv venv → 有効化 → pip install … の順番が安全です。
バージョン指定の深掘り(壊さずに更新する設計)
代表的な指定方法と使い分け
- ==(完全一致): 再現性最重視。本番やCIで堅く固定。
- ~=(互換): 同じマイナー内で更新を許容。例: pydantic~=2.9
- >=,<(範囲): 安全余地を取りつつ脆弱性修正を取り込みやすい。
- なし(最新): 試験的に触るときのみ。運用では推奨しない。
複数の依存が同じサブ依存へ異なる要求を出す「競合」があり得ます。競合時は範囲指定を調整して両立可能な組合せへ寄せます。
requirements.txt(再現性の核)
固定化と再現(作る→配る→復元)
- 現環境を書き出し: pip freeze > requirements.txt
- 復元(別環境で): pip install -r requirements.txt
pip freezeは「今入っているもの全部」を出すため、試しに入れた不要ライブラリが紛れやすいです。最小構成にしたい場合は、実際に使うものだけを手書きで管理するのも有効です。
環境別の分割
- requirements.txt: アプリ本体の依存
- requirements-dev.txt: 開発補助(pytest, black など)
- requirements-prod.txt: 本番向けにピン止めした固いセット
よくあるトラブルと対処(最短で詰まりを解く)
コマンドが見つからない・間違ったpipを使っている
- 症状: pip: command not found、またはグローバル環境へ入ってしまう。
- 対処: 仮想環境を有効化してから pip を使用。python -m pip … と明示すると、今のPythonに紐づくpipが確実に呼ばれます。
権限エラー・書き込み不可
- 症状: Permission denied。
- 対処: 仮想環境内で実行する、または –user を使う(ただし仮想環境が基本)。管理者権限に頼らないのが安全です。
SSLやネットワークエラー
- 症状: TLS/証明書関連、タイムアウト。
- 対処: ネットワーク到達性と証明書ストアを確認。タイムアウトは –timeout の明示、後で再試行。
ビルドに失敗(C拡張が必要)
- 症状: numpy, lxmlなどでコンパイルエラー。
- 対処: 事前ビルド済みホイールがあるPython/OSの組合せを選ぶ、または必要な開発ツール・ヘッダを導入。
実用例(Web/APIプロジェクトでの型)
例題1:仮想環境で最小セットを導入・確認
# 仮想環境
python -m venv venv
source venv/bin/activate # Windowsは venv\Scripts\Activate.ps1
# 依存導入
python -m pip install requests python-dotenv
# 動作確認(今のPythonとライブラリバージョン)
python - <<'PY'
import sys, requests, dotenv
print("Python:", sys.executable)
print("requests:", requests.__version__)
print("python-dotenv:", dotenv.__version__)
PY
例題2:バージョンを安全な範囲で指定して運用
python -m pip install "httpx>=0.27,<0.28" "pydantic~=2.9"
定期的にテストを回してから、pip freeze > requirements.txt で固定化します。
例題3:requirements.txtからの一括復元
# 開発環境
python -m venv venv && source venv/bin/activate
python -m pip install -r requirements.txt
この一行で、チームメンバーやCIが同じ環境を瞬時に再現できます。
ベストプラクティス(事故を減らし、再現性を高める)
仮想環境“先に”有効化
pip installは必ず有効化後に。プロンプトの先頭に(venv)が出ているか確認します。
python -m pipを癖にする
複数Pythonが入っている環境でも“今のPythonのpip”が確実に呼ばれ、取り違え事故を防げます。
バージョン方針を決める
本番はピン止め(==)で定期更新、開発は範囲指定で脆弱性修正を取り込みやすく。ライブラリの重要度に応じて厳しさを変えます。
変更は新しい環境で検証
アップグレードは新規venvで試し、テスト合格後にrequirements.txtを更新。差分をレビューして、何が上がったか可視化します。
まとめ
pip installは、Pythonの力を広げる入口。仮想環境内で使い、バージョン指定を設計し、requirements.txtで再現性を担保するのが基本線です。トラブルは「正しいpipの呼び方」「権限・ネットワーク・ビルド」の型で最短解決。この型を体に入れれば、初心者でも短い手順で「壊れない・再現できる・運用しやすい」依存管理が実現できます。
