pip と仮想環境
標準ライブラリは多くのシナリオをカバーしていますが、実際のプロジェクトではほとんどの場合サードパーティライブラリを使用します——HTTP には
requests、データにはpandas、Web アプリにはflask。このレッスンでは、これらのライブラリのインストール・管理方法と、仮想環境を使ってプロジェクト間の依存関係を分離する方法を学びます。
1. pip — Python のパッケージマネージャー
pip は Python の公式パッケージマネージャーで、サードパーティライブラリのインストール、アンインストール、管理を行います。
# パッケージをインストール
pip install requests
# 特定のバージョンをインストール
pip install requests==2.31.0
# パッケージをアンインストール
pip uninstall requests
# インストール済みパッケージを一覧
pip list
# パッケージ情報を表示
pip show requests
pip install package_name は自動的に PyPI からダウンロードしてインストールします。
2. requirements.txt
プロジェクトが複数のサードパーティライブラリに依存している場合、requirements.txt に記録します:
requests==2.31.0
flask==3.0.0
pandas==2.0.0
numpy==1.24.0
# すべての依存関係をインストール(プロジェクトクローン後に実行)
pip install -r requirements.txt
# requirements.txt を生成(現在の環境の全パッケージ)
pip freeze > requirements.txt
例:requests を使った API 呼び出し(難易度 ⭐⭐)
# 最初にインストール: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)
異なるプロジェクトでは同じパッケージの異なるバージョンが必要になる場合があります。仮想環境がこれを解決します——各プロジェクトが独自の独立した環境を持ちます。
# 仮想環境を作成
python -m venv myenv
# 仮想環境を有効化
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate
# 有効化後、プロンプトの先頭に (myenv) と表示される
# これ以降にインストールするパッケージはこの環境のみに影響
# 仮想環境を無効化
deactivate
ワークフロー
# 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 読み取り(難易度 ⭐⭐)
# 最初にインストール: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()) # 統計サマリー
よくあるユースケース
- プロジェクト初期化:venv 作成 → 依存関係インストール → コーディング開始
- 依存関係管理:
requirements.txtでバージョンを固定。チームおよび本番環境で一貫性を確保 - 環境分離:異なるプロジェクトが同じライブラリの異なるバージョンを使用(例:プロジェクト A は Flask 2.x、プロジェクト B は Flask 3.x)
- ワンクリックデプロイ:
pip install -r requirements.txtですべての依存関係を一度にインストール
❓ よくある質問
pip install と python -m pip install の違いは何ですか?python -m pip はどの Python インタプリタの pip を使うかを明示的に指定するため、複数 Python バージョン環境ではより安全です。python -m pip install を使う習慣をつけましょう。venv または .venv にします。これにより他の開発者に一目でわかります。venv/ を .gitignore に追加することを忘れないでください——仮想環境はバージョン管理にコミットすべきではありません。pip freeze > requirements.txt はすべてのパッケージをリストアップします。依存関係の依存関係も含まれます。多すぎませんか?pip freeze は確かにすべてをリストアップします。トップレベルのパッケージだけを残して間接的な依存関係を削除するのが一般的です。または pipreqs を使うと、コード内で実際にインポートされているパッケージのみをスキャンします。📖 まとめ
pip install package_nameでサードパーティパッケージをインストール。pip uninstallで削除requirements.txtでプロジェクトの依存関係を記録。pip install -r requirements.txtで一括インストール- 仮想環境(
venv)で各プロジェクトの依存関係を分離 - ワークフロー:venv 作成 → 有効化 → pip install → 開発 → freeze → コミット
- よく使われるサードパーティライブラリ:
requests、flask、pandas、numpy、beautifulsoup4
📝 練習問題
-
基本(難易度 ⭐):仮想環境を作成し、有効化し、
requestsライブラリをインストールし、pip listで確認してから無効化してください。 -
中級(難易度 ⭐⭐):
requestsライブラリを使って https://api.github.com/repos/python/cpython を呼び出し、CPython リポジトリの情報を取得してください。リポジトリ名、スター数、フォーク数、最終更新時刻を出力します。 -
上級(難易度 ⭐⭐⭐):プロジェクトディレクトリを作成し、仮想環境を初期化し、
flaskとrequestsをインストールし、pip freezeでrequirements.txtを生成してください。その後、仮想環境を削除し、requirements.txtを使ってゼロから再構築——動作することを確認してください。



