Pythonバイブコーディング講座 — Part 4

再現性の確保

requirements.txt で環境を残す

2026.04 Tomoaki Yamaguchi ← シリーズ目次へ

Part 3 までで「自分のPC」では解析が動くようになりました。次に大事なのは、その環境を第三者(共著者・査読者・将来の自分)が再現できる形で残すことです。Pythonでは requirements.txt という1つのテキストファイルに、使ったライブラリとそのバージョンを書き出しておくのが標準的なやり方です。このパートでは、その作り方と再現側の手順を解説します。

01 なぜ requirements.txt が必要なのか

Part 1 で説明したとおり、Pythonコードは 「Pythonバージョン × ライブラリのバージョン群」の組み合わせが揃って初めて動きます。あなたの環境で pandas 2.2.0 を使って書いたコードは、pandas 1.5.0 しか持たない相手の環境では動かない可能性があります。

requirements.txt は、あなたが使ったライブラリとそのバージョンを1行ずつ書き出したテキストファイルです。このファイルがあれば、受け取った相手は 1コマンドで全く同じバージョンのライブラリ群をインストール できます。

requirements.txt の中身(例)

pandas==2.2.0
openpyxl==3.1.2
matplotlib==3.8.2
numpy==1.26.3
seaborn==0.13.1

02 requirements.txt を生成する

Part 2 で作った仮想環境(.venv)に入っている状態(アクティベート済みの状態)で、ターミナルからコマンドを実行します。

仮想環境に入る方法のおさらい

VSCodeでターミナルを開いて(上部メニュー「ターミナル → 新しいターミナル」)、次のいずれかを実行:
・Windows(PowerShell):.venv\Scripts\Activate.ps1
・Windows(Command Prompt):.venv\Scripts\activate.bat
・Mac / Linux:source .venv/bin/activate

プロンプトの先頭に (.venv) が付いていれば、仮想環境に入っている状態です。

仮想環境に入ったら、次のコマンドを実行します。

ターミナル(プロンプトに (.venv) がついた状態で実行)
pip freeze > requirements.txt

コマンドが正常に終わると、フォルダの直下に requirements.txt というファイルが新たにできます。中身を開くと、現在の仮想環境にインストールされている全ライブラリとバージョンが一覧で書かれているはずです。

この時点でのフォルダ構成

my_first_analysis/
├── .venv/
├── analysis.ipynb
├── sample_data.xlsx
├── results/
└── requirements.txt   # ← 新しくできた

解析を進めて新しいライブラリをインストールしたら、requirements.txt も更新が必要です。最後にもう1回 pip freeze > requirements.txt を実行する習慣をつけましょう。

03 第三者が環境を再現する手順

共著者や査読者があなたの解析を再現するには、あなたが渡したフォルダ一式と、その中の手順説明があれば十分です。まずは何を渡せばよいかを整理しましょう。

渡すべきファイル・フォルダ

共有するフォルダの中身

my_first_analysis/
├── data/             # 生データ(公開可能なもの)
├── analysis.ipynb   # 解析スクリプト
├── results/       # 出力された図表(あれば参考に同梱)
├── requirements.txt  # Step 2 で作成
└── README.md      # 手順書(次のStep 4で作成)

.venv/ フォルダは 含めません。受け取った相手が自分のPCで再生成する。

渡し方は、フォルダをZIPにまとめてメールで送る・クラウドストレージで共有する・Part 5 で扱う GitHub や Zenodo で公開するなど、いずれの方法でも構いません。

受け取った側の手順

フォルダを受け取った人は、まず README.md に書かれている Python バージョンを確認します。次に、自分のPCに同じバージョンの Python が入っているかをチェックします。

  1. README.md を開いて Pythonバージョンを確認(例:「Python 3.12 で動作確認」と書いてある)
  2. 自分のPCに該当バージョンが入っているか確認:ターミナルで python --version(Windowsで複数バージョンが共存している場合は py --list)。入っていなければ python.org/downloads から該当バージョンをインストール。
  3. VSCodeでフォルダを開いて、ターミナルから次のコマンドを実行
ターミナル(受け取ったフォルダの中で実行)
# Windows で Python 3.12 を使う場合 py -3.12 -m venv .venv .venv\Scripts\Activate.ps1 pip install -r requirements.txt # Mac / Linux で Python 3.12 を使う場合 python3.12 -m venv .venv source .venv/bin/activate pip install -r requirements.txt

最初の行で README.md に書いてあるバージョンを指定して仮想環境を作成 します。バージョン指定をしないと、PCに入っている既定のPythonが使われてしまいます。その結果、想定と違う挙動になることがあります。最後の pip install -r requirements.txt で、ライブラリを記載されたバージョンでまとめてインストールします。

これで相手は、あなたが analysis.ipynb を実行したのと同じ環境を手元に再現できます。コードを実行すれば、同じ図表・同じ統計量が得られます。これが 再現性 です。

04 README.md にも手順を書いておく

フォルダにはぜひ README.md という説明ファイルを置いておきましょう。第三者が最初に読むファイルとして、次のような内容を書いておくとフレンドリーです。

README.md(例)
# 〇〇研究の解析パッケージ ## 環境構築 ``` python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt ``` ## 実行 VSCode で `analysis.ipynb` を開き、上から順にセルを実行してください。 結果は `results/` フォルダに保存されます。 ## Pythonバージョン Python 3.12 で動作確認しています。

README.md は、VSCodeやメモ帳で普通のテキストファイルとして作成・保存できます。

Markdown記法とは

上の例で #``` といった記号を使っているのは Markdown(マークダウン)記法 という書式ルールです。テキストに少し記号を添えるだけで、見出し・コードブロック・リストなどの装飾が表現できる「軽量な書式」です。GitHub・Zenodo・Notion・Slack など多くのサービスがMarkdownに対応しており、README.md ファイルは GitHub上で自動的に整形表示されます。

書き方の詳細は補足記事 「Markdown記法の超入門」 にまとめています。最低限、#(見出し)と ```(コード囲い)の2つだけ覚えれば十分です。

05 注意点:完全な再現性のために

requirements.txt は強力ですが、いくつか注意すべき点があります。

とはいえ、まずは pip freeze で出力したものをそのまま使えば十分です。完璧を目指さず、「とりあえずrequirements.txtがある」状態をまず作りましょう。

06 .gitignore で .venv を除外する(任意)

フォルダをGitHubなどで共有する際、.venv フォルダは共有から除外するのが標準です。受け取り側で再生成すべきものであり、サイズも大きいためです。除外するためには、フォルダの直下に .gitignore という名前のファイルを作ります。次の内容を書いておきます。

.gitignore
.venv/ __pycache__/ *.pyc .ipynb_checkpoints/

これでGitHubにアップロードする際に、これらのファイル・フォルダは自動で除外されます。Part 5 で詳しく扱います。


このパートでできるようになったこと

最後のPart 5では、ここまで作ったフォルダ一式をZenodoやGitHubで公開し、論文Appendixからリンクを貼って研究の再現性を担保する方法を紹介します。

Prev — Part 3 ← LLMでバイブコーディング 目次 Next — Part 5 論文公開時の運用 →