【Python】インタープリタとvenvが何者かを理解した
Pythonの学習時にインタープリタとvenvが登場したが、これらが何者なのか分かっていなかったので、調べてまとめます。
インタープリタとは
「人間が書いたソースコードを1行ずつ機械語に変換して実行してくれるプログラム」です。
Pythonのコードは、人間が理解できるように書かれていますが、コンピューターが理解するためにはPythonのコードを実行可能な形式に変換する必要があるので、インタープリタがこの役割を担います。
venvとは
「Python 3.3以降に標準ライブラリとして提供されているモジュールで、仮想環境を作成するためのツール」です。
以下のコマンドを実行することにより、対象ディレクトリ配下に仮想環境を作成、アクティベートできます。
- 仮想環境を作成
python -m venv [仮想環境名]
- 仮想環境をアクティベート
(Mac)
source [仮想環境名]/bin/activate
(Windows)
[仮想環境名]\Scripts\activate
仮想環境ごとにPythonやインストールするライブラリのバージョンを変えることができます。
なぜvenvが必要なのか?
Pythonでは、ライブラリのバージョンや依存関係を適切に管理することで、他のPJに影響を与えないようにする必要があるからです。
仮想環境が1つしかない場合、「今からインストールしたいライブラリAのバージョンだと、別のPJで利用しているライブラリBと衝突してしまうので、Aをインストールできない」、「インストールしようとしているライブラリCは現在利用しているPythonのバージョンに対応していない」ということが起こる可能性があります。
そのため、PJごとに仮想環境を分けることで、上記問題を解決します。
ディレクトリごとに仮想環境を分けることが可能
仮想環境はディレクトリごとに分けることができます。
(例)
上記の例では、test_1ディレクトリがあり、その配下にtest_2ディレクトリがあります。
test_1はvenv_1、test_2はvenv_2を持ち、それぞれ独立した仮想環境を作成することができます。
以上です。
Discussion