Python: pip と仮想環境

標準ライブラリは多くのシナリオをカバーしていますが、実際のプロジェクトではほとんどの場合サードパーティライブラリを使用します——HTTP には requests、データには pandas、Web アプリには flask。このレッスンでは、これらのライブラリのインストール・管理方法と、仮想環境を使ってプロジェクト間の依存関係を分離する方法を学びます。


1. pip — Python のパッケージマネージャー

pip は Python の公式パッケージマネージャーで、サードパーティライブラリのインストール、アンインストール、管理を行います。

BASH
# パッケージをインストール
pip install requests

# 特定のバージョンをインストール
pip install requests==2.31.0

# パッケージをアンインストール
pip uninstall requests

# インストール済みパッケージを一覧
pip list

# パッケージ情報を表示
pip show requests
💡 pip は PyPI(Python Package Index)からパッケージをダウンロードします。 PyPI は Python の公式パッケージリポジトリで、50 万以上のパッケージをホストしています。pip install package_name は自動的に PyPI からダウンロードしてインストールします。



2. requirements.txt

プロジェクトが複数のサードパーティライブラリに依存している場合、requirements.txt に記録します:

TXT
requests==2.31.0
flask==3.0.0
pandas==2.0.0
numpy==1.24.0
BASH
# すべての依存関係をインストール(プロジェクトクローン後に実行)
pip install -r requirements.txt

# requirements.txt を生成(現在の環境の全パッケージ)
pip freeze > requirements.txt

▶ サンプル:requests を使った API 呼び出し(難易度 ⭐⭐)

TEXT 📖 参照専用
# 最初にインストール:pip install requests
import requests

# 公開天気 API を呼び出し
try:
    response = requests.get(
        "https://api.open-meteo.com/v1/forecast",
        params={
            "latitude": 39.9,
            "longitude": 116.4,
            "current_weather": True
        },
        timeout=10
    )
    
    if response.status_code == 200:
        data = response.json()
        weather = data["current_weather"]
        print(f"Beijing current temperature: {weather['temperature']}°C")
        print(f"Wind speed: {weather['windspeed']} km/h")
    else:
        print(f"Request failed: {response.status_code}")

except requests.exceptions.RequestException as e:
    print(f"Network error: {e}")


3. 仮想環境(venv)

異なるプロジェクトでは同じパッケージの異なるバージョンが必要になる場合があります。仮想環境がこれを解決します——各プロジェクトが独自の独立した環境を持ちます。

BASH
# 仮想環境を作成
python -m venv myenv

# 仮想環境を有効化
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate

# 有効化後、プロンプトの先頭に (myenv) と表示される
# これ以降にインストールするパッケージはこの環境のみに影響

# 仮想環境を無効化
deactivate

(1) ワークフロー

BASH
# 1. プロジェクトディレクトリを作成
mkdir my_project
cd my_project

# 2. 仮想環境を作成
python -m venv venv

# 3. 有効化
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 4. 依存関係をインストール
pip install requests flask

# 5. 依存関係を記録
pip freeze > requirements.txt

# 6. 完了したら無効化
deactivate

# プロジェクトをクローンする他の人:
# python -m venv venv
# source venv/bin/activate(または Windows の同等コマンド)
# pip install -r requirements.txt


4. よく使われるサードパーティライブラリ早見表

ライブラリ 目的 インストールコマンド 一言で
requests HTTP リクエスト pip install requests HTTP リクエストを送る最も人気のある方法
flask Web フレームワーク pip install flask 軽量 Python Web フレームワーク
pandas データ分析 pip install pandas Excel レベルのデータ処理
numpy 数値計算 pip install numpy 高性能配列演算
beautifulsoup4 Web スクレイピング pip install beautifulsoup4 HTML からデータ抽出
pillow 画像処理 pip install pillow 画像のオープン、編集、保存
pytest テストフレームワーク pip install pytest 最も人気のある Python テストフレームワーク

▶ サンプル:pandas を使った CSV 読み取り(難易度 ⭐⭐)

TEXT 📖 参照専用
# 最初にインストール:pip install pandas
import pandas as pd

# CSV ファイルを読み取り
df = pd.read_csv("students.csv")
print(df.head())                    # 最初の 5 行
print(f"Rows: {len(df)}, Columns: {len(df.columns)}")
print(df.describe())                # 統計サマリー


5. よくあるユースケース

(3) ▶ サンプル:仮想環境の完全ワークフロー (難易度 ⭐)

TEXT 📖 参照専用
# 1. プロジェクトディレクトリを作成
mkdir my_data_project
cd my_data_project

# 2. 仮想環境を作成
python -m venv venv

# 3. 仮想環境を有効化 (Windows)
venv\Scripts\activate
# 仮想環境を有効化 (macOS/Linux)
# source venv/bin/activate

# 4. プロジェクトの依存関係をインストール
pip install requests pandas

# 5. インストールを確認
pip list
# Output:
# Package    Version
# ---------- -------
# pandas     2.x.x
# requests   2.x.x

# 6. 依存関係をファイルに固定
pip freeze > requirements.txt

# 7. requirements.txt の内容を確認
type requirements.txt
# Output:
# pandas==2.x.x
# requests==2.x.x

# 8. 仮想環境を無効化
deactivate

# 9. 他の人が環境を再構築
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

ポイント: 主要なステップは create → activate → install → freeze → deactivate です。 pip freeze > requirements.txt で現在の環境のパッケージバージョンをファイルに書き出します。他の人は pip install -r requirements.txt で全く同じ環境を再現できます。



5. よくあるユースケース


❓ よくある質問

Q pip installpython -m pip install の違いは何ですか?
A 同じ結果を生成します。python -m pip はどの Python インタプリタの pip を使うかを明示的に指定するため、複数 Python バージョン環境ではより安全です。python -m pip install を使う習慣をつけましょう。
Q 仮想環境はプロジェクトディレクトリの内側と外側のどちらに置くべきですか?
A 通常はプロジェクトルート内に置き、名前は venv または .venv にします。これにより他の開発者に一目でわかります。venv/.gitignore に追加することを忘れないでください——仮想環境はバージョン管理にコミットすべきではありません。
Q pip freeze > requirements.txt はすべてのパッケージをリストアップします。依存関係の依存関係も含まれます。多すぎませんか?
A pip freeze は確かにすべてをリストアップします。トップレベルのパッケージだけを残して間接的な依存関係を削除するのが一般的です。または pipreqs を使うと、コード内で実際にインポートされているパッケージのみをスキャンします。

📖 まとめ


📝 練習問題

  1. 基本(難易度 ⭐):仮想環境を作成し、有効化し、requests ライブラリをインストールし、pip list で確認してから無効化してください。

  2. 中級(難易度 ⭐⭐)requests ライブラリを使って https://api.github.com/repos/python/cpython を呼び出し、CPython リポジトリの情報を取得してください。リポジトリ名、スター数、フォーク数、最終更新時刻を出力します。

  3. 上級(難易度 ⭐⭐⭐):プロジェクトディレクトリを作成し、仮想環境を初期化し、flaskrequests をインストールし、pip freezerequirements.txt を生成してください。その後、仮想環境を削除し、requirements.txt を使ってゼロから再構築——動作することを確認してください。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%