Pythonでアプリやスクリプトを書いていて、こんな経験はありませんか?「自分のPCでは完璧に動くのに、いざ他の人に渡したらエラー連発…」「PCを買い替えたら、お気に入りのスクリプトが軒並み動かなくなった…」。原因のほとんどは、必要なライブラリが入っていない/バージョンがズレていることです。
これを解決する超シンプルな仕組みが pip freeze と requirements.txt。たった2つのコマンドを覚えるだけで、あなたの開発環境をワンタッチで他の場所に丸ごと再現できるようになります✨ チームでの共同開発も、GitHub公開も、自分用のバックアップも、ぐっと安心・スピーディになりますよ。
requirements.txt は、Pythonプロジェクトで使っているパッケージの一覧と、そのバージョンを書き並べたただのテキストファイルです。中身はこんな感じ。
Flask==2.0.1
numpy==1.21.2
pandas==1.3.3
requests==2.26.0
「このプロジェクトを動かすには、これらのパッケージが、このバージョンで必要だよ」というレシピのようなもの。GitHubでPythonプロジェクトを覗くと、ほぼ必ずトップ階層にこのファイルが置かれています。
Pythonにはパッケージ管理のためのツールが複数あります(poetry、pipenv、condaなど)。ただ、もっとも基本かつ広く使われているのが pip + requirements.txt の組み合わせ。標準で入っていて、覚えることも少なく、ほとんどのプロジェクトでそのまま通用します。まずはここからマスターするのが鉄板です💪
現在の環境にインストールされているパッケージ一覧を、requirements.txt という形で書き出すのが pip freeze です。ターミナル(macOS)やコマンドプロンプト/PowerShell(Windows)で次のコマンドを実行するだけ。
pip freeze > requirements.txt
これを実行した瞬間、コマンドを打ったディレクトリに requirements.txt が生まれます。中を覗くと、現在の環境で pip が管理しているパッケージとバージョンが、ずらりと書き込まれているはずです📝
# requirements.txt の中身(例)
Flask==2.0.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
Werkzeug==2.0.1
このファイル自体はただのテキストなので、エディタで開いて手動で編集することも可能。「このパッケージのバージョンだけ落としたい」「このライブラリだけ追記したい」といった調整も自由自在です。
書き出した requirements.txt を別のPCや別のPython環境で読み込ませて、まったく同じ構成を一発で再現するコマンドがこちらです。
pip install -r requirements.txt
たったこれだけ。ファイルに書かれているすべてのパッケージが、指定されたバージョンでズラッとインストールされていきます。「Flaskが入ってない」「pandasのバージョンが違う」といったハマりどころが、一気に解消するわけです🎉
pip install 済み。pip freeze > requirements.txt を実行。pip install -r requirements.txt を実行。flask.__version__ もきっちり 2.0.1 に。環境を破棄してもすぐに復旧できるという安心感は、一度味わうと手放せません。「壊れることを恐れずに気軽に環境を作り直せる」状態は、学習スピードを加速させる強力な追い風になります🌟
すでにインストール済みのパッケージでも、requirements.txt 側のバージョン番号を書き換えて再度 pip install -r requirements.txt を実行すれば、指定したバージョンに揃え直してくれます。
# 例:Flaskを2.0.0に固定したい
Flask==2.0.0
この状態で再インストールすれば、Flaskだけが 2.0.0 にダウングレード(または変更)されるので、「特定バージョンで動作確認したい」という場面でも便利です。
GitHubでPythonプロジェクトを公開・配布するとき、requirements.txt はほぼ必須の存在。リポジトリのトップに置いておくだけで、利用者は次の3行であなたのコードを動かす準備が整います。
git clone <リポジトリURL>
cd プロジェクト名
pip install -r requirements.txt
「自分の作品を世界に届ける」「チームメンバーと環境を共有する」「将来の自分が困らないようにする」——どの目的でも、このシンプルな仕組みが大きな価値を生み出してくれます🌐
パッケージ管理は、座学だけだと頭に入りにくい分野。手元で何度も試して、トラブルを経験しながら身につけるのが一番です。良書と快適な作業環境を揃えれば、学習の継続率が一気に変わります。
言語仕様だけでなく、仮想環境やパッケージ管理、Gitとの連携など「現場で必要になる周辺知識」が一通り学べる一冊。本稿の requirements.txt 活用と相性抜群です。
「依存関係の管理」「再現可能な環境」など、プロが当たり前にやっているベストプラクティスを90項目で網羅。長く使えるPythonの土台を作ってくれます。
「どのコマンドでハマったか」「どのパッケージはどのバージョンが安定か」を書き留めておくと、未来の自分が必ず助けられます。リング部分が手に当たらないので長時間の学習でも快適です。
pip install や pip freeze といったコマンドを毎日打つなら、打鍵感の良いキーボードはまさに投資先。静音設計&バックライト付きで、夜の学習も気持ちよく進みます。
左にエディタ、右にターミナルを並べておくと、requirements.txt の編集とインストールの流れを一望できます。USB-C一本で接続できる4Kモニターはノートユーザーの強い味方です。
動きはしますが、プロジェクトごとに依存パッケージが衝突する原因になります。venv や virtualenv で仮想環境を作り、その中で pip install -r requirements.txt を実行するのが安全な定番フローです。
仮想環境でなく共有環境で pip freeze すると、無関係なパッケージまで全部出てきてしまいます。プロジェクト用の仮想環境を作り、その中だけで pip freeze するのが鉄則。pipreqs のような「実際にimportされたパッケージだけ抽出する」ツールを併用するのもおすすめです。
多くの場合は使えますが、パッケージによっては対応するPythonのバージョンが決まっているので注意。requirements.txt にはPython自体のバージョンは記録されないため、READMEなどに「Python 3.10で動作確認済み」と明記しておくと親切です。
poetryやpipenvは依存解決やロックファイルなど、より高度な機能を備えたツールです。ただ学習コストは高め。まずは pip + requirements.txt でPython環境管理の感覚を掴んでから、必要に応じてステップアップするのが無理のない流れです。
pip uninstall パッケージ名 で個別に削除できます。requirements.txt を使って一気にアンインストールしたい場合は pip uninstall -r requirements.txt -y が便利です。
Python開発でつまずくポイントの大半は、コードそのものではなく「環境のズレ」。pip freeze > requirements.txt で書き出して、pip install -r requirements.txt で読み込む——この2つを覚えるだけで、あなたの開発環境はどこにでも持ち運べる「ポータブルな資産」に変わります。
新しいPCに移行するときも、チームメンバーに作品を渡すときも、GitHubで世界に公開するときも、たった一つのテキストファイルがあなたを助けてくれます。お気に入りの書籍と快適なキーボード、広い作業画面を揃えて、Pythonの環境管理を「気軽に試せて、気軽に壊せる」ものに育てていきましょう🚀
今日から、あなたのプロジェクトのトップには、堂々と requirements.txt を置けるはず。そのファイル一枚が、未来のあなたとあなたのコードを、何度でも救ってくれますよ📦✨