エラノート エラノート

pip入門|Pythonパッケージ管理の基本を解説

pip Python パッケージ管理 環境構築 初心者
広告スペース (article-top)

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

環境によってはpython3pip3というコマンド名になっていることがあります。

# 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)と組み合わせて使うことで、プロジェクトごとに独立したパッケージ環境を構築できます。まずは仮想環境を作り、実際にパッケージをインストールして使ってみてください。

広告スペース (article-bottom)

あわせて読みたい