仮想環境ってなに?
そもそも環境ってなに?
プログラミングにおける「環境」とは、ざっくりと表現するとプログラムを動かすためのファイルやプログラムといえます。
たとえばPythonではプログラムはこんな感じで動作します。
このようにソースコードをPython本体(インタプリタ)が読み込み、(必要に応じて)ライブラリを読み込むことでプログラムが実行されます。
このプログラムのソースコードを実行するためのPythonのインタプリタやライブラリ、その土台となるPCそのもの等をひっくるめて「環境」と呼んでいます。
「実行環境」や「動作環境」なんて呼んだりもしますね。
仮想環境とは
「環境」の意味についてはなんとなく理解できたかと思います。
そこに「仮想」が付くとどう違ってくるのでしょうか。
仮想(Virtual)というとVR等が想像されますよね。
言葉で表現すると「本当は存在しないけれどそれと同等の体験ができるもの」といった感じでしょうか。
「仮想環境」とは本来の「環境」とは別モノだけど、それと同等の機能を有しているものです。
ひとつのPC内に、互いに独立した環境を複数構築することができます。
お互いに隔離されているので、それぞれに異なった構成にすることができます。
仮想環境を使うわけ
Pythonを例に挙げると、Pythonそのもののバージョンやライブラリのバージョンによってはプログラムが正しく動作しないことがあります。
これはプログラムを開発した環境と、実行する環境の構成が異なると発生することがあります。
また、ライブラリをたくさんインストールしているとまれにライブラリ同士が干渉してプログラムが正しく動作しないこともあるそうです。(私は遭遇したことはありませんが)
これらの問題を回避するためには、実行するプログラムに合わせた構成の環境を用意する必要があります。
プログラムを実行するために都度Pythonやライブラリのインストール・アンインストールを繰り返すのはあまり現実的じゃないですよね。
そこでプログラムに合わせて仮想環境を作ることでプログラムを正しく動作させることができるのです。
仮想環境は他の仮想環境とは隔離されているので、互いに影響を与えることもありません。
プログラム初心者でも仮想環境を使うべき?
プログラミングを始めたばかりの初心者の方がいきなり仮想環境を使いこなす必要はないし、そもそも仮想環境というもの自体気にしなくてもいいと思います。
ライブラリのバージョンとか、ライブラリ同士の相性といった問題が出てくるのは中級者以上のレベルからだと考えています。
たとえばPythonの勉強を始めたばかりの人がいきなりサードパーティ製のライブラリをガンガン使うという状況はほぼありません。
ネット上に公開されているコードを実行する場合は様々なライブラリが必要になってくることもありますが、
仮想環境の概念は理解しておいてもいいと思いますが、まずはプログラミングの基本を身に着ける方が大事です。