Python 入門コース / 第7章 発展(第47〜50回) / レッスン 47
仮想環境と pip・外部ライブラリ
標準ライブラリと外部ライブラリ
json や datetime のように最初から入っているのが標準ライブラリ、requests や pandas のように別途インストールが必要なのが外部ライブラリです。外部ライブラリは pip で導入します。
仮想環境を作る理由
何も考えずに pip install すると、パソコン全体に入ります。プロジェクト A はライブラリ v1、B は v2 を使いたい——という状況で必ず衝突します。venv でプロジェクトごとに独立した環境を作るのが標準的なやり方です。
ターミナル
$ cd my-project
$ python3 -m venv .venv # .venv フォルダに環境を作る
# 有効化(macOS / Linux)
$ source .venv/bin/activate
(.venv) $ python -V
# 有効化(Windows)
> .venv\Scripts\activate
(.venv) $ pip install requests # この環境の中だけに入る
(.venv) $ pip list
(.venv) $ deactivate # 抜ける
有効化するとプロンプトの先頭に (.venv) が付きます。これが出ていない状態で pip install しない、とだけ覚えておけば事故りません。.venv フォルダは Git にはコミットせず、.gitignore に入れます。
requirements.txt で環境を再現する
使っているライブラリの一覧をファイルに書き出しておけば、別のパソコンや本番サーバーでまったく同じ環境を再現できます。チーム開発では必須です。
ターミナル
(.venv) $ pip freeze > requirements.txt
(.venv) $ cat requirements.txt
requests==2.32.3
certifi==2024.7.4
# 別の環境で
$ python3 -m venv .venv && source .venv/bin/activate
(.venv) $ pip install -r requirements.txt
requests を使ってみる
import requests
res = requests.get("https://api.github.com/repos/python/cpython")
print(res.status_code)
data = res.json() # JSON を辞書として受け取る(第37回)
print(data["full_name"], data["stargazers_count"])
※ ブラウザ内の実行環境では外部ライブラリのインストールと通信ができないため、この回は手元で試してください。res.json() が返すのはただの辞書です。第 21 回・第 37 回でやったことがそのまま使えます。
✅ 理解度チェック
仮想環境(venv)を使う主な理由は?