pythonの仮想環境ってなに?メリットや使うべき理由をどこよりも易しく解説します

  • 2021年11月15日
  • 2021年11月22日
  • python
  • 3064view

pythonの勉強をはじめたけど、よく聞く仮想環境ってなんだ・・・

  • pythonの勉強をしたいけど仮想環境ってなに?
  • pythonの仮想環境を使うメリットってなに?
  • pythonの仮想環境を初心者でも使うべきなの?使い方は?

みなさんはこんな疑問をもっていませんか?

こんにちは!おへんじといいます!

私はpythonの仮想環境を使ってpythonを勉強をしています

私もpythonを勉強したての頃は仮想環境のことを知らなくて

後々構築をやり直すことになってしまいました泣

今回は僕と同じように後悔する人が1人でも少なくなることを願って

python仮想環境について初心者の方でも理解できるよう解説していきます

  • 難しい言葉は使わず
  • 画像・表多め

わかりやすさにこだわって解説していきます

おへんじ
初心者でもわかるように解説するから安心してね

この記事を読むとわかること・・・

  • pythonの仮想環境の仕組み
  • 仮想環境を使うメリット
  • おすすめのpython仮想環境

解説に入る前に・・・

pythonとは『プログラミング言語』の1つです

おへんじ
パソコンと人間がやりとりをするための言語の1つだよ

人の言葉にも日本語、英語、中国語などいろいろあるように

プログラミング言語にもさまざまな種類があります

pythonはプログラミング言語の中でも最近話題のAIやデータ分析などを

得意としている人気の言語です

もっとpythonについて知りたい方は下の記事で詳しく解説しているので

参考にしてみてください

そもそも仮想環境とは

pythonの仮想環境のメリット・使い方を解説する前に

仮想環境の仕組みについて解説しておきます

分かりやすさのために専門的な言葉を使わずに説明します

仮想環境とは・・・1つのパソコンの中に仮想的な環境を作ることをいいます

〈仮想環境の例〉

  • 1つのパソコンの中にpython環境を作成する
  • Macの中にWindows環境を作成する
  • Windowsでlinux環境を作成する
Windows・Mac・Linux・・・OS(オペレーティングシステム): システム全体を管理するソフトウェアのこと

OSってなんや!!!て思った方のために簡単に説明しておきます

OSを知っている方は読み飛ばしちゃってください

OSはパソコンの中で司令塔の役割をしています

理解しやすいようにフクロウが机で作業している場面に例えて説明しておきます

(フクロウくんがパソコンの中で働いているイメージです)

  • OS(オペレーティングシステム):システム全体を管理するソフトウェア
  • CPU(中央処理装置):処理の速さ
  • 容量(SDD・HDD):データ記録できる量
  • メモリ:複数の作業がたくさんできる

このようにパソコンにはOSが搭載されていて、いろんな処理を行ってくれます

Windowsには『WindowsOS』やMacには『MacOS』が搭載されています

おへんじ
OSを開発している会社が違うよ

話が脱線してしまったので仮想環境の話に戻しますね

仮想環境とは・・・パソコンの中になにかしらの仮想的な環境を作ること

仮想環境は1つのパソコンの中で複数の環境を構築できるので便利ですが、

パソコンの中にもう1つのパソコン(仮想環境)を作るような場合は、

1つのパソコンが分身しているようなものなので処理能力を割り当てて使用することになります

今回は仮想環境の中でもpythonの仮想環境について解説していきます


pythonの仮想環境とは

仮想環境がどんなものかイメージができたところで

続いてpythonの仮想環境について説明していきます

pythonの仮想環境を使うと・・・

1つのパソコンでいろんなpythonを使えるようになります
見習くん
いろんなpythonってなんですか?
おへんじ
pythonにはいろんなバージョンがあって定期的に更新されているよ
見習くん
バージョンってiphoneとかパズドラでたまにバージョンアップするあれですか?
おへんじ
そうそう!pythonも定期的にバージョンアップされて改善されてるよ

pythonにはいろんなバージョンがあって大きく分けると

python2』と『python3』に分けられます

数字の大きい方が新しいバージョンになっています

python2は2020年にサポートが終了しています

そのため現在はpython3を使用するのが主流になっています

python3の中にもpython3.7.2やpython3.9.5など細かく分かれています

このようにpythonにはいろんなバージョンのpythonがあって

仮想環境を使えば好きなバージョンのpythonを使用することができます

〈仮想環境なしの場合〉

〈仮想環境ありの場合〉

ライブラリ・・・特定の機能を備えた複数のファイルを1つにまとめたもの

pythonはライブラリと呼ばれる便利なツールをインストールして使用します

ライブラリを言葉で説明されてもピンとこないと思うので

わかりやすく図にするとこんなイメージです

  • モジュール:pythonの1つのファイルのこと(〇〇.pypythonファイルのこと)
  • パッケージ:モジュールを複数あつめたフォルダのこと
  • ライブラリ:パッケージを複数あつめてインストールできるようにしたもの

いきなりわからない言葉がたくさん出てきて

パニックになっているかもしれませんが大丈夫です

深呼吸してから次に進みましょう

ライブラリパッケージモジュールの順で

ライブラリが一番大きい!と覚えておけばバッチリです

ちなみに・・・

〇〇.pyっていうのは、エクセルでいう〇〇.xlsxのことです(『.py』や『.xlxs』のことを拡張子と呼びます)

おへんじ
ファイル名の後ろの拡張子で何のファイルか判断できるよ

仮想環境を使えば、いろんなバージョンのpythonを使用できて

それぞれのpythonで使用したいライブラリをインストールすることができます


なぜpython仮想環境を使うべきなのか

仮想環境を使用すれば、いろんなpythonが使えることは理解できたけど・・・

  • そもそもいろんなpythonを使用する必要があるの
  • 最新のpythonのバージョンを使えばいいんじゃないの?

と思った方は少なくないと思います

複数のpythonを使用する理由はさまざまありますが

分かりやすさのためにギュッとまとめると・・・

アップデートによる不具合を回避するため

最新のpythonにアップデートするときに以下のことがよく起こります

  • 最新バージョンのpythonにアップデートすると今まで動いていたプログラムが動かなくなった
  • 前のバージョンでは使用できたライブラリが新しいバージョンでは使用できない
  • 仕様が変更されていて、なんだか使いにくい

こんなときに新しいバージョンではなく

前のバージョンのpythonも残しておきたい!ということが多々あります

こんなときに仮想環境を使っていれば何の問題もなく解決することができます

私はこれを知らなくて環境構築をはじめからやり直すハメになりました泣


python仮想環境のメリット

python仮想環境の仕組み・使うべき理由が理解できたところで

python仮想環境を使うメリットを紹介していきます

その1 いろんなバージョンのpythonを使える

これは上でも説明したとおり

仮想環境を使用することで複数バージョンのpythonを使用することができます

やりたいことが複数ある場合・・・

やりたいことに適したpythonのバージョンをそれぞれ使用する

やりたいことが1つしかない場合・・・

仮想環境を1つ作成してpythonをはじめることを強くオススメします

その理由については次の項目で解説します


その2 ライブラリがぐちゃぐちゃにならない

仮想環境を使えば複数のpythonを使用できます

その場合、それぞれのpythonで必要なライブラリをインストールすることになります

もし、仮想環境を使用しなかった場合・・・

いろんなライブラリを1つの環境にインストールしまくることになります

ライブラリが多くなりすぎると・・・

  • 処理速度が低下する
  • エラーの原因となる(相性の悪いライブラリもある)

このようにライブラリをインストールしすぎるのはオススメしません

やりたいことで仮想環境を分けてライブラリを整理整頓することが大切です

最初はめんどくさいかもしれませんが仮想環境の使い方を覚えておきましょう


その3 仮想環境の作成・削除が簡単

仮想環境を作る!と言われたら、初心者の方は

なんだか難しそうでやだな〜と思いますよね

でも安心してください

pythonの仮想環境の作成や削除はすごく簡単にできます

試しにpyenvを使って仮想環境を作る方法(コマンド)を紹介しておきます

pyenv・・・pythonの仮想環境をつくることができるバージョン管理ツール

〈仮想環境の作成〉

$ pyenv virtualenv 3.7.3 test
『3.7.3』はpythonのバージョン
『test』は仮想環境の名前です(testの部分は自由に変えられます)

〈仮想環境の削除〉

$ pyenv uninstall test

このようにたったの1行で仮想環境の作成・削除ができます

ちなみに・・・

pyenv virtualenv 3.7.3 test』や『pyenv uninstall test』などの操作は

  • Windows:コマンドプロンプト
  • Mac:ターミナル

と呼ばれる黒い画面で、この操作を実行します

〈Windows:コマンドプロンプト 〉

〈Mac:ターミナル〉

おへんじ
コマンドの始めの『$』マークはコマンドプロンプトやターミナルで操作をするんだよーってことを示してるよ

この他にも作成した仮想環境に移動・pyenvのインストールなども

基本的に1行で操作することができます

おへんじ
pythonの仮想環境は扱い方が簡単なんだって認識でいいよ


その4 実験ができる

上でも書きましたが、ライブラリには相性があって

相性の悪いライブラリをインストールしてしまうとエラーの原因となることがあります

そんなときに実験用の仮想環境を作成して試してみる!なんてことができます

失敗してエラーが出たら、その仮想環境ごと削除してしまえば

本来の使用している仮想環境はぐちゃぐちゃになりません

おへんじ
pythonの仮想環境は作成・削除が簡単だから気軽に実験できるよ


python仮想環境の種類

pythonで仮想環境を作成する方法はいろいろありますが

よく使われている代表的な方法を紹介しておきます

  1. pyenv
  2. venv(標準機能のためインストール不要)
  3. virtualenv

  4. conda(Anacondaとセット)

上記の他にも仮想環境を作る方法はありますが

この4つを覚えておけば十分です

結論を先に言っておくと・・・

最初に仮想環境の設定をしてしまえば

仮想環境のことを意識しなくても
ライブラリの整理ができる
pyenvがオススメ

見習くん
それぞれに特徴があるんですか?
おへんじ
それぞれの特徴を簡単にまとめた表で説明するね

それぞれの特徴について以下にまとめておきます

〈pyenvについて〉

  • pyenvはフォルダの移動だけで仮想環境の切り替えができる(別の切り替え方法もあり)
  • 一度仮想環境を設定すれば、意識しなくてもライブラリの整理ができる

〈venvについて〉

  • venvはvirtualenvがPython 3.3 から標準機能として取り込まれたもの(別途インストール不要)
  • pythonのバージョンの管理ができないのがデメリット
  • 標準搭載でインストール不要のため、初心者にはハードルが低い
  • 初心者のうちは、シンプルで扱いやすいvenvがオススメ(初心者はバージョン管理まで必要ないから)

〈virtualenvについて〉

  • venvと使い方はほぼ同じ
  • venvの機能に加えてpythonのバージョン管理ができるイメージ
  • python 3.3より前はvirtualenvが標準的に使用されていた

〈condaについて〉

  • condaは『Anaconda』と呼ばれるpythonを使うためのパッケージの中に入っている
  • 『Anaconda』でpythonをはじめる場合はcondaがおすすめ(その場合、別途インストール不要)
おへんじ
結局どれでも仮想環境を簡単に作成することができるよ
僕は『pyenv』を使っているよ

まとめ

そもそも仮想環境とは

  • 1つのパソコンの中に仮想的な環境を作ること

pythonの仮想環境を使うと

  • 1つのパソコンで複数のバージョンのpythonを使えるようになる

なぜpython仮想環境を使うべきなのか

  • アップデートによる不具合を回避するため

  • アップデートするとプログラムが動かなくなる場合がある

  • こんなときのために仮想環境を作成しておく

python仮想環境のメリット

  • いろんなバージョンのpythonを使える

  • ライブラリがぐちゃぐちゃにならない

  • 仮想環境の作成・削除が簡単

  • 実験ができる

python仮想環境の種類(代表的な4つ)

  • pyenv(オススメ)

  • venv

  • virtualenv

  • conda

pythonの仮想環境について少しでも理解できたでしょうか

扱い方は比較的簡単なので最初に覚えてしまいましょう!

仮想環境を作って一緒にプログラミングの勉強がんばっていきましょう!

ohenziblogはプログラミングを独学で始めるための徹底ガイドを目指しています

最新情報をチェックしよう!