あまやどり開発雑記

システムエンジニア裏薄荷が”あまやどり”という夢をつづったブログです。

MENU

※新米ママとして育児系のブログ 裏薄荷の初ママ日記も運営しております。

【連載】Pythonのライブラリや仮想環境ってなぁに? 第3回 仮想環境ってなぁに?

ガラスで廊下と区切られたサーバールーム、廊下にはノートパソコンをいじる女性が立っています

 

こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっか)です。

※以下、以前BloggerでUpしていた記事を移行した内容になります。

 

さて、今日はPythonのプログラミング……の前に。

 

"ライブラリってなぁに?"
"仮想環境ってなぁに?"

 

と言葉の意味がわからず、

 

"プログラミングって難しい、わかんない!!”

 

とつまずいてしまった方のために、全3回に分けて説明をしています。

 

初心者が大まかなイメージをつかめることを目的にしているので、厳密には違う部分が出てくるかもしれませんが、そこはご容赦ください。


最終回となる第3回では、Pythonにおける"仮想環境"という言葉の意味を説明していきます。

 

先に説明した"ファンクション"や"ライブラリ"という言葉のイメージを掴んでいることが前提ですので、まだお読みでない方は、先にそちらの記事をお読みください。

 

tnim-amayadori.hatenablog.com

tnim-amayadori.hatenablog.com

 


第3回 仮想環境ってなぁに?

 

先に注意書きです。

 

"仮想環境"という言葉自体は、Python以外でも出てきます。

ここで説明するのは、あくまでPythonにおける仮想環境の意味、になります。

Python以外の文脈で出てきた場合には意味が異なりますので、注意してください。

 

では本題、Pythonにおける"仮想環境"という言葉の意味について。

 

Pythonだと、"Anaconda"だとか"pip"だとか、そんな言葉とセットで"仮想環境"という言葉が出てきます。

 

Pythonでいう仮想環境とは、先ほど説明したライブラリなどを管理するための環境です。

 

……と言われても、よくわかりませんよね。

 

では、そもそもなぜライブラリを管理する必要があるのか、そこから説明していきましょう。

 

第2回で、ライブラリはたくさんのレシピ(=ファンクション)がつまった図書館のイメージだと説明しました。

 

本棚の前に座る人物のピクトグラム、図書館のイメージイラストです。

さてこの図書館、随時新しいレシピ(=ファンクション)を用意したり、既にあるレシピもよりよく改良したりします。

 

あなたが図書館のレシピを利用するには、図書館にあるレシピを丸々、あなたが開発を行うPC等に入れる必要があります。

 

この図書館(=ライブラリ)のレシピを丸々入れることをインストールと言います。

 

当然、あなたがレシピを丸々入れた後にも、元の図書館では、レシピが日々更新されているかもしれません。

 

そのため、いつどの時点のレシピのセット(=ライブラリ)をあなたが入れたのかわかるように、バージョンという番号がライブラリには振られています。

 

2つの本棚、左側の本棚はVersion1.0.0のライブラリ、右側の本棚は本が増えており、Version2.0.0のライブラリとなっている。

 

さて、図書館のバージョンアップが行われる際、単純に新しいレシピ(=ファンクション)が増えるだけならいいのですが、削除されたり、レシピに必要な材料(=引数)や、逆にできあがる料理(=戻り値)が変更されてしまう場合もあります。

 

つまり、あなたの作成したプログラムがバージョン1.0.0のライブラリのレシピ(=ファンクション)を前提としていたのに、バージョン2.0.0のライブラリでは、必要なレシピ(=ファンクション)が消えてしまってプログラムが動かなくなってしまう!なんてことになる可能性があるわけです。

 

上半分の左側にプログラムAと書かれた書類、右のVersion1.0.0のライブラリである本棚の本を参照しています。それに対して下の左側、プログラムAは変わっていないのですが、Version2.0.0の本棚からは参照していた本が消えてしまいました。

 

仮にこの作成済のプログラムをプログラムAとしましょう。

 

さて、あなたはプログラムAとは別に、新しくプログラムBを作りたいとします。

 

新しく作るプログラムBでは、バージョン2.0.0で新しく追加された便利なレシピ(=ファンクション)を使いたい。。。

 

そんな風に思うかもしれませんね?

 

その場合、

 

プログラムAではバージョン1.0.0のライブラリ、

プログラムBではバージョン2.0.0のライブラリ、

 

を使えるようにしたいわけです。

 

上のプログラムAからはVersion1.0.0の本棚に存在している本、下のプログラムBからはVersion2.0.0の本棚に新しく追加された本を参照しています。

 

ここで、"仮想環境"の出番となるわけです。

 

このプログラムAやプログラムBに必要なライブラリをまとめて入れて管理するのが、"仮想環境"です。

 

要はこんな箱のイメージですね。

 

左側はプログラムAのための仮想環境としてライブラリαVersion1.0.0とライブラリβVersion3.1.0の本棚が箱に入っている。右側はプログラムBのための仮想環境として、ライブラリαVersion2.0.0とライブラリγVersion5.0.1が一つの箱に入っている。2つの仮想環境はどちらもあなかの開発環境であるパソコンの中に入っている。

 

よく聞くAnacondaやpipとは、この箱にライブラリを出し入れ(インストール/アンインストール)したり、箱に入っているライブラリのバージョンを管理するためのツールになります。

 

またどのプログラムに対して、どの箱が紐づいているかも管理しています。

 

先ほどの2つの仮想環境の箱に、ネットワークからライブラリを運ぶ人々のイラストが描かれている。ライブラリを運ぶ、つまりインストールしているのがAnacondaやpipなどのイメージとなる。

 

 

なんとなく、"仮想環境"という言葉のイメージはつかめましたでしょうか?

 

 

これにて全3回に渡って説明いたしました「【連載】Pythonのライブラリや仮想環境ってなぁに?」は終了となります。

 

この後Pythonの開発環境構築手順に関する記事を更新する予定です。

その際に、具体的にどのフォルダやファイルが仮想環境にあたるのか、軽く触れたいと思います。

よろしければ、引き続きそちらの記事もお読みいただければ幸いです。

 

----------------------------------------------------------------
素材取得元:

 ----------------------------------------------------------------