【関連記事】【Pythonのライブラリ管理ツール】pipインストールを徹底解説!Windowsでも簡単?
Pythonの仮想環境
システム開発に携わっていると、必ず直面するのがメンテナンスやバージョンアップです。それらに対応するために、従来は開発機と本番機を分ける構成が当たり前でした。
しかし、近年の仮想化技術の進展やハードスペックの向上によって、今では同じ物理マシンに複数の仮想環境を構築して運用することが当たり前になっています。
また、Pythonにも独自に仮想環境を構築することができる仕組みが備わっており、1つのマシン上で開発・テスト・本番稼働まで無理なく利用可能です。ここでは、Pythonの仮想環境について紹介します。
Pythonとは
Pythonに関して、エンジニアの皆さんはよくご存じかと思いますが、改めて確認しましょう。
Python言語はAIの機械学習の開発に使われることで知られていますが、実はWebアプリの開発やビッグデータの解析、さらにはゲームアプリの開発にまで利用されるほどの人気の言語です。次に学びたい言語としては、C言語やJavaを抑えて1位となる人気ぶりです。
仮想環境とは
一般的に「仮想環境」とは、サーバーやパソコンといった1つのマシンの中に仮想的に異なる環境を構築したものを指します。例えば、1つのマシンにWindows環境とLinux環境を併存させて利用するような場合に、仮想環境が構築されます。
マシンの物理的スペックを変えず、CPUやメモリを仮想環境にそれぞれ論理的に割り当て、あたかも異なる物理環境があるかのように利用できます。このように、仮想化技術によってマシンを効率的に利用することが可能です。
Pythonの仮想環境とは?
Pythonでシステム開発を進める際に、1つのマシンでテストや本番稼働を同時に行うことはさまざまなリスクや制約を伴います。
また、本番稼働中のシステムのメンテナンス、バージョンアップなどを行う際にも、同一マシン上でこれを行うにはさまざまな問題が発生します。こうしたリスクや問題、制約を解消してくれるのが、「Python仮想環境」です。
Pythonの仮想環境の必要性
Pythonにおける「仮想環境」とは、マシンにインストールしたモジュール・パッケージ、あるいは異なるPythonのバージョンごとに、それぞれが分離された環境を意味します。
例えば、Pythonで開発作業を行う際にPython2系で利用していたパッケージがPython3系では使えない場合があり、それぞれのバージョンの違いによって問題が生じます。
こうした問題を解決する方法として、同じマシン上にPythonの仮想環境を作る必要があるのです。もちろん、バージョン毎にマシンを分ける方法もありますが、物理的にも作業的にも非常に無駄が多くなります。Pythonの仮想環境はリスクや制約の回避以外にも、こうした物理的・作業的無駄を省くという効果もあるため、仮想環境を利用しないという手はありません。
Pythonのインストール(Windowsの場合)
ここでは、Pythonのインストール方法について解説します。
次のURLへアクセスして下さい。 ・https://www.python.org/
画面の上部にあるメニューから「Download」にマウスを合わせるとメニューが表示されるので、そこからWindows向けのPythonをダウンロードします。現時点(2022.3)の最新バージョンは、Python3.10.2です。ダウンロードしたファイルをダブルクリックするとインストールが開始します。
【参考】Windows版Pythonのインストール: Python環境構築ガイド - python.jp
Pythonの仮想環境利用のメリット
Pythonの仮想環境を利用する必要性については分かりましたが、では仮想環境を利用する具体的なメリットは何なのでしょうか?Pythonエンジニアを目指す方は、Pythonの仮想環境は必須知識となるため、仮想環境のメリットについてはよく理解しましょう。
コストも手間も掛からない
仮想環境が必要だということは分かっても、仮想環境の構築作業が難しい場合には、仮想環境の構築自体が足かせになってしまいがちです。しかし、Python仮想環境は、ソフトを使えば作るのも削除するのもコマンド1つで簡単にできます。コストも手間も掛からないため、これを利用しない手はありません。
異なるバージョンのPythonを利用できる
仮想環境を使うメリットとしては、異なるバージョンのPythonを同時に使用できるということが挙げられます。バージョンアップの際に、新たなマシン環境を用意することなく、同一マシン上で新旧バージョンを併存させながらテストや移行ができます。エンジニアにとっても大変便利な機能です。
モジュールの追加や更新ができる
Python上で新たなモジュールの追加やモジュールの更新が必要になる場合に、モジュールの追加・更新が本番環境に影響を及ぼすことがあります。しかし、仮想環境を利用すれば、本番環境への影響を気にすることなく、モジュールの追加や更新が可能となる点も仮想環境のメリットの1つです。
同じモジュールで異なるバージョンが使用できる
Python上で使用する複数のアプリケーションが同じモジュールの異なるバージョンを必要としている場合、仮想環境があると便利です。通常、同じモジュールの異なるバージョンを同時にインストールすることはできないため、すべてのアプリケーションに対応することは困難です。
しかし、仮想環境を使用すれば同じモジュールの異なるバージョンをインストールできるため、複数のアプリケーションに対応できます。
開発・テスト作業の効率が上がる
Pythonを使ったプログラムの開発・テストをする場合、異なるOSやPythonのバージョンでの動作を確認する必要があります。実機の場合は何台もパソコンを用意する必要がありますが、仮想環境だと1台のパソコンに複数の環境を作成することができます。そのため、環境構築にかかるコストを大幅に削減できます。
Pythonの仮想環境はvenvがおすすめ
Pythonの仮想環境を構築するためのソフトはいくつか種類があります。特に初心者の方は何を選択すれば良いのか迷うでしょう。ここでは、Pythonの代表的な仮想環境ソフトとしてvenvをおすすめします。
【参考】venv --- 仮想環境の作成
venvとは
venvとは1つのシステム環境の中に、異なるPython環境を作れるソフトウェアの名称です。コマンド1つで仮想環境を作る、仮想環境を削除するなどができます。
venv以外のソフト(virtualenv・conda・pyenv)
Pythonの主な仮想環境ソフトとしては、venv以外にvirtualenvとcondaがよく知られています。
・virtualenvはサードパーティ製のPythonライブラリで、利用する場合は新たにインストールする必要があります。
・condaは機械学習関係のライブラリやツールが豊富な、Pythonディストリビューション(distribution)であるAnacondaに含まれるメジャーなPython仮想環境ソフトです。Anacondaをインストールしないと使えません。 【参考】Conda —Condaのドキュメント
・pyenvはPythonで使える仮想環境ソフトウェアですが、Windowsをサポートしていないため、Windowsユーザは使えません(Windows版のpyenv-winはありますが、特に推奨理由が見当たりません)。 【参考】GitHub - pyenv/pyenv: Simple Python version management
venvとdockerとの違い
エンジニアの方は、仮想環境ツールとしてdockerを利用されている方もいるでしょう。では、dockerとvenvとは何が違うのでしょうか?
venvは、Python依存関係のみをカプセル化するのに対し、 DockerはOS全体をカプセル化します。例えば、DockerはLinux環境・Windows環境・Mac環境それぞれでPythonアプリを動かす場合などに利用します。
【参考】Docker ドキュメント
venvをおすすめする理由
venvの前身はvirtualenvです。venvはPython 3.3 以降に標準機能として取り込まれました。そのため、venvは新たにソフトウェアをインストールしなくてもすぐに使用できるので、手軽に仮想環境を構築・管理できます。
Python2系でvirtualenvを利用していた方も、Python3系はvenvを選択すると良いでしょう。機能的に両者はほとんど差がなく、使い勝手が良いからです。以下に、venvをおすすめする理由を挙げます。
1.Python公式venvはPython3.5以降で、Python公式の推奨仮想環境となりました。
2.venvは主流Python資格の試験対策チュートリアルでも、venvが前提となっています。
3.pipが使えるpipはPythonのパッケージを管理するツールです。venvではpipをそのまま使え、トラブルの心配も不要です。
venvを使って仮想環境を作ってみよう
venvはPython3系では標準機能の1つだとお伝えしました。では、実際にvenvを使ってみましょう。
venvで仮想環境を作る
ここでは、Windows環境での仮想環境の作り方について簡単に解説します。仮想環境ソフトウェアvenvは、Python3.4以降であればすぐに使えます。まず、インストールされている pythonのバージョンを確認しましょう。なお、以下はコマンドプロンプトを使った手順を紹介しますが、VScodeを使用することもできます。
1.Pythonのバージョンを確認する Windows10であれば、デスクトップ画面左下の「ここに入力して検索」の欄に"cmd"と入力します。 コマンドプロンプト画面が表示されたら、"python -V"と入力すると、Pythonのバージョンが表示されます。Python3.4以降であれば、venvをすぐに利用できます。
2.仮想環境を作る 同じく、コマンドプロンプト画面で、"python -m venry ●●●"と入力します。●●●は作成する仮想環境の名前で、任意の名前を入れます。ここでは仮に"kasou"とします。
3.仮想環境を有効にする 仮想環境を実行するには、\Scripts\activateコマンドを使います。 コマンドプロンプト画面で、"kasou\Scripts\activate"と入力します。
4.仮想環境を無効にする 仮想環境を無効にするには、コマンドプロンプト画面で、"deactivate"と入力します。これで仮想環境の"kasou"は無効化されました。改めて仮想環境を有効にするには、コマンドプロンプト画面で、"kasou\Scripts\activate"を入力します。
仮想環境を活用してPythonを上手く使おう
ここではPythonの仮想環境とは何か、Pythonにおける仮想環境の作り方、そのメリットなどについて、主にPython仮想環境ソフトウェアの「venv」をベースに解説しました。
Pythonで仮想環境を構築することが、拍子抜けするほど簡単だということがわかりました。仮想環境を利用することで、バージョンにとらわれず自由にプログラムを実行させられるメリットは、実際にPythonプログラミングを行ったときに実感できるでしょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから