DockerはOSレベルから仮想環境を作るシステムです。単一のマシン(コンピュータ)の上で複数のOS環境を同時に稼働させたりすることができます。
vagrantはちょっとややこしいですが、Dockerも含めたOSレベルの仮想化ツールのwrapperないしフロントエンドと捉えておくと良いと思います。様々なものをバックエンドに置いて動かすことができます。
OSレベルの仮想化のためのツールにはDockerの他にも色々なものがあり、VMwareのツールやVirtualBoxが比較的有名です。というか、歴史的にはそれらの技術(VM:Virtual Machineと呼ばれます)が先行し、その後OSのカーネルを共有するためにVMに比べて技術的なメリットのあるDockerが誕生して普及しました。
pipenvなどのPythonの仮想化ツール(他にもvenv, virtualenv, pyenv, anacondaの提供する仮想環境機能など、様々なものがあります)で言われる「仮想化」はOSレベルの仮想化とは一切関係がありません。これらは(あえていえば)アプリケーションレベルの仮想化を実現するものです。
これらのツールを用いると、おおむね
- それぞれ異なったライブラリをインストールした複数のPython環境を簡単に作れる
- それぞれ異なったバージョンのPython環境を共存させることができる
- これらを切り替えて使うことができる(pythonやpipなどのコマンドで立ち上がる実行ファイルが切り替わるようにするなど)
といったことができます(ツールによって多少の機能の相違はあります。たとえばvenv自体にはpythonのバージョンを切り替える機能はありません)。
逆に言うと、そういったことをしたいのでなければ、必ずしもpythonの仮想環境は必須ではありません。
それはそれとして、pipenvには気がかりな点があります。というか率直に言えば、開発が滞っています。
最後に更新がリリースされたのは2018年の11月で、一年以上新しいバージョンをリリースできていないのが現状です。これは昨年、インターネット上で少し話題にもなりました。
開発継続が断念された訳ではないようですが、特別に使いたいのでもない限り、積極的にpipenvを選ぶ状況でもないのかな、という感じです。
Is pipenv dead? Why has the project stopped? : Python
If this project is dead, just tell us · Issue #4058 · pypa/pipenv
pipenv · PyPI
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/16 04:26