仮想環境

python 

仮想環境 virtual environment (かそうかんきょう)

Python用語としては、プロジェクトごとに作る、pythonの実行環境。

pythonでのシステム開発では、プロジェクトによって、必要な外部ライブラリが異なるのが普通。
なので、開発プロジェクトごとに仮想環境を作りその仮想環境の中で必要なライブラリをインストールする。

ひとつのPCの中で、複数の仮想環境を作ることができる。
それぞれの仮想環境は独立していて、互いに干渉しない。

それぞれの開発で必要になる最小限のライブラリしかインストールしないようにすることで得られるメリットは、以下の3つ。

  1. 仮想環境の状態を見れば、そのプロジェクトに必要な外部ライブラリは何なのか?がすぐに分かる
  2. 必要でない外部ライブラリまで取り込んでしまい、ライブラリが肥大化することを避けられる
  3. 必要でない外部ライブラリまで取り込んでしまい、セキュリティリスクが増大化することを避けられる

1つ目のメリットは、同じプロジェクトを別のPCやサーバマシンで開発・運用したいときに有利。
2つ目、3つ目のメリットは言うまでもない。

比較のために書くと、エクセルでは「アドインのインストール」から外部ライブラリをインストールできるが、これだと、どのエクセルファイルを扱うときにも「アドインがインストールされたエクセル」で作業することになるので、効率が悪い。
たとえば、「ソルバーアドイン」、「分析ツール」という2つのアドインがインストールされたエクセルは、「ソルバーアドイン」を必要とする分析や「分析ツール」を必要とする分析をするときには必要だが、「手軽に集計をしたい」といったときには不要。
にもかかわらず、これらのアドインがインストールされていると、エクセルを起動するのにいちいち時間がかかる等のデメリットがある。
また、別のPCで同じエクセルファイルで同様の作業をしようとしたとしても、読み込みが必要なのが「ソルバーアドイン」なのか、「分析ツール」なのか、はたまたその両方なのか?が即座に分からない。

pythonで仮想環境を作るということは、いわば、「ソルバーアドイン」のみが必要な分析用には、「ソルバーアドイン」がインストールのみがインストールされたエクセルを使い、「分析ツール」のみが必要な分析用には、「分析ツール」がインストールのみがインストールされたエクセルを使うようなもの。

エクセルVBAで[ツール]→[参照設定]から外部ライブラリを読み込むことにも少し近いが、これだとエクセルというソフトに対してではなく、エクセルファイルに対して外部ライブラリを関連づけるので、またニュアンスが異なる。

掲載用語一覧:

TOPへ(新着順に表示できます)

i18n 
アセンブリ言語  (assembly language)
アンスコ 
イテラブル  (iterable)
イテレート  (iterate)
イミュータブル  (immutable)
インスタンス  (instance)
WSGI 
ウェルノウンポート  (well known port)
API 
SQL 
m17n 
MTVフレームワーク  (mtv framework)
MVCフレームワーク  (mvc framework)
l10n 
LTS 
演算子  (operator)
オブジェクト指向プログラミング  (object oriented programming)
仮想環境  (virtual environment)
関心の分離  (separation of concerns)
git 
github 
キャメルケース  (Camel Case)
クッキー  (Cookie)
クライアント  (client)
クラス  (class)
クラスの継承  (class inheritance)
CRUD 
ケバブケース  (kebab case)
高階関数  (high order function)
コンパイラ  (compiler)
サーバ  (server)
CMS 
JSON 
識別子  (identifier)
辞書  (dictionary)
車輪の再発明  (reinventing the wheel)
シリアライズ  (seralize)
スネークケース  (snake case)
セッション  (Session)
多重継承  (multiple inheritance)
dunder 
ディストリビューション  (distribution)
デシリアライズ  (deserialize)
DRY 
認可  (authorization)
認証  (certification)
パスカルケース  (Pascal Case)
ハッシュ  (hash)
バッテリーインクル-デッド  (battery included)
バリデーション  (validation)
引数  (argument)
ビルトイン  (built in)
フレームワーク  (framework)
プロトコル  (protocol)
ポート番号  (port number)
メソッド  (method)
メンバー  (member)
UUID 
ライブラリ  (library)
LAMP 
リクエストメソッド  (request method)
RESTful 
レンダリング  (rendering)

この用語集はこんな人が書いています