pip入門|Pythonパッケージ管理の基本を解説
pipはPythonのパッケージ管理ツールです。世界中の開発者が公開しているライブラリを簡単にインストールして使うことができます。この記事ではpipの基本的な使い方からrequirements.txtの管理、バージョン指定の方法までを初心者向けに解説します。
pipとは
pipは「Pip Installs Packages」の略で、Pythonの公式パッケージ管理ツールです。PyPI(Python Package Index、https://pypi.org/)に公開されているパッケージをコマンド一つでインストールできます。
pipのインストール確認
Python 3.4以降をインストールすると、pipも一緒にインストールされます。
# Pythonのバージョン確認
python --version
# Python 3.x.x と表示されればOK
# pipのバージョン確認
pip --version
# pip 24.x.x と表示されればOK
環境によってはpython3やpip3というコマンド名になっていることがあります。
# macOS / Linuxの場合
python3 --version
pip3 --version
パッケージとは
パッケージとは、特定の機能を提供するPythonのコードの集まりです。PyPIには50万以上のパッケージが公開されています。
よく使われるパッケージの例を挙げます。
requests: HTTPリクエストを送るライブラリpandas: データ分析ライブラリflask: Webアプリケーションフレームワークmatplotlib: グラフ描画ライブラリ
パッケージのインストール
基本的なインストール
# パッケージをインストール
pip install requests
# 複数パッケージを同時にインストール
pip install requests flask pandas
インストールしたパッケージはPythonのコード内でimportして使えます。
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 200
print(response.json())
バージョンを指定してインストール
# 特定のバージョンをインストール
pip install requests==2.31.0
# 最低バージョンを指定
pip install requests>=2.28.0
# バージョン範囲を指定
pip install "requests>=2.28.0,<3.0.0"
バージョンの範囲を指定する場合は、引用符で囲む必要があります。
インストール済みパッケージの確認
# インストール済みパッケージの一覧
pip list
# 特定のパッケージの情報を表示
pip show requests
pip showの出力には、パッケージのバージョン、作者、依存パッケージなどの情報が含まれます。
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Requires: charset-normalizer, idna, urllib3, certifi
requirements.txtで依存関係を管理する
requirements.txtとは
requirements.txtは、プロジェクトで使うパッケージの一覧を記録するファイルです。チームメンバーや本番環境でも同じパッケージをインストールするために使います。
requirements.txtの作成
# 現在インストール済みのパッケージを書き出す
pip freeze > requirements.txt
作成されたrequirements.txtの中身は以下のようになります。
certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1
requirements.txtからインストール
# requirements.txtに記載されたパッケージを一括インストール
pip install -r requirements.txt
このコマンドにより、同じバージョンのパッケージが再現されます。
手動でrequirements.txtを書く
pip freezeは依存パッケージもすべて出力するため、手動で書く方法もあります。
# requirements.txt(手動作成の例)
requests>=2.28.0
flask>=3.0.0
pandas>=2.0.0
matplotlib>=3.8.0
手動で書く場合は、直接使うパッケージだけを書き、バージョンは範囲指定にすることが多いです。
仮想環境と組み合わせて使う
仮想環境を使う理由
pipでパッケージをそのままインストールすると、PCにインストールされたPythonの環境にグローバルに追加されます。プロジェクトごとに異なるバージョンのパッケージを使いたい場合に問題が起きます。
仮想環境を作ると、プロジェクト専用のPython環境を用意できます。
仮想環境の基本操作
# 仮想環境を作成
python -m venv venv
# 仮想環境を有効化(macOS / Linux)
source venv/bin/activate
# 仮想環境を有効化(Windows)
venv\Scripts\activate
# 仮想環境が有効になっているか確認(パスが仮想環境内を指す)
which pip
# パッケージをインストール(仮想環境内に入る)
pip install requests
# 仮想環境を無効化
deactivate
仮想環境とrequirements.txtの実践的な流れ
新しいプロジェクトを始めるときの手順は以下の通りです。
# 1. プロジェクトフォルダを作成
mkdir my-project && cd my-project
# 2. 仮想環境を作成・有効化
python -m venv venv
source venv/bin/activate
# 3. 必要なパッケージをインストール
pip install requests flask
# 4. requirements.txtを作成
pip freeze > requirements.txt
# 5. .gitignore に venv を追加
echo "venv/" >> .gitignore
他のメンバーが同じプロジェクトを使い始めるときは、以下の手順になります。
# 1. リポジトリをクローン
git clone https://github.com/example/my-project.git
cd my-project
# 2. 仮想環境を作成・有効化
python -m venv venv
source venv/bin/activate
# 3. requirements.txtからパッケージをインストール
pip install -r requirements.txt
パッケージの更新と削除
パッケージの更新
# 特定のパッケージを最新版に更新
pip install --upgrade requests
# 更新可能なパッケージの一覧を表示
pip list --outdated
パッケージの削除
# パッケージを削除
pip uninstall requests
# 確認なしで削除
pip uninstall -y requests
pipコマンドのヘルプ
# pipのヘルプを表示
pip help
# 特定のコマンドのヘルプ
pip help install
よくあるトラブルと対策
権限エラー
# エラー例: Permission denied
# 仮想環境を使えば権限の問題を回避できる
# どうしてもグローバルに入れたい場合
pip install --user requests
--userオプションを使うとユーザーディレクトリにインストールされるため、管理者権限が不要になります。
パッケージの競合
異なるパッケージが異なるバージョンの依存パッケージを要求する場合、競合が起きることがあります。
# 依存関係のチェック
pip check
# 問題がある場合の出力例
# requests 2.31.0 requires urllib3<3,>=1.21.1,
# but you have urllib3 3.0.0 which is incompatible.
このような場合は、仮想環境を新しく作り直してrequirements.txtからインストールし直すのが確実です。
pip自体の更新
pip自体も定期的に更新すると、新しい機能やバグ修正を利用できます。
# pipを最新版に更新
pip install --upgrade pip
まとめ
pipはPythonのパッケージ管理ツールで、pip installでパッケージを追加し、requirements.txtで依存関係を管理します。仮想環境(venv)と組み合わせて使うことで、プロジェクトごとに独立したパッケージ環境を構築できます。まずは仮想環境を作り、実際にパッケージをインストールして使ってみてください。