pipとpipenvの違い
pipはPythonのパッケージ管理ツールで、Pythonのライブラリをインストールするために広く使われています。しかし、pipは依存関係の管理や仮想環境の構築など、より高度なユースケースを簡単にするツールではありません。
一方、pipenvはPythonの依存関係管理と仮想環境の構築を簡単に、自動で行ってくれるツールです。Node.jsのnpmやRubyのbundlerと同じ精神で作られています。pipenvは内部的にpipとvirtualenvを使っています。
pipenvの使い方
pipenvのインストールはpipから行えます。インストール後、pipenv --python 3.6
のようなコマンドを実行すると、Python 3.6の仮想環境を作ることができます。このコマンドを実行すると、Pipfileというファイルが自動生成されます。Pipfileは仮想環境の「設計図」で、Pythonのバージョンやインストールしたパッケージなどが記録されます。
次に、pipenv install -r requirements.txt
のようなコマンドを実行すると、requirements.txtに書かれたパッケージが仮想環境にインストールされます。このコマンドを実行すると、新しくPipfile.lockというファイルが自動生成されます。Pipfile.lockには、実際にインストールしたパッケージの詳細なバージョンや依存パッケージの情報などが自動で記録されます。
最後に、pipenv shell
コマンドを実行すると、仮想環境の中に入ることができます。仮想環境の中でPythonのプログラムを実行すると、そのプログラムは仮想環境にインストールされたパッケージを使用します。
まとめ
pipenvはPythonのパッケージ管理と仮想環境の構築を一元化するツールで、pipとvirtualenvの機能を統合しています。pipenvを使うことで、Pythonのプロジェクト管理がより簡単になります。ただし、pipもPythonと密接に統合されており、多くのPythonディストリビューションにはデフォルトで含まれています。したがって、pipとpipenvのどちらを学ぶべきかは、個々のニーズとプロジェクトの要件によります。