python の仮想環境を使いこなす!

(※このページは2020年5月24日に更新)

この記事では python を使う上で必要不可欠な仮想環境について紹介します。

python の利点として多くのライブラリが簡単に利用できる点が挙げられますが、一方で多くのライブラリをインストールすることで、ライブラリ間に予期せぬ衝突が起こり、正常に作動しなくなる場合があります。
そのため理想的には最小限のライブラリのみインストールすることが求められます。

python にはこれを実現するため「仮想環境」が用意されています。

異なるプロジェクト (作業) ごとに仮想環境を用意することで、それぞれの状況に適した最小限かつ最適なライブラリセットを作成することができます。

現在 python で仮想環境を作る方法はいくつかありますが、ここでは以下の2種類について紹介していきます

  1. conda を用いて仮想環境を作成
  2. pyenv-virtualenv を用いて仮想環境を作成

conda を利用するためには Anaconda (or miniconda)、pyenv-virtualenv には pyenv が必要となりますが、それぞれの導入方法はこちらの記事を参照ください。

conda を用いて仮想環境を作成

anaconda や miniconda で python 環境を構築している場合は conda コマンドが使えます。

仮想環境を構築する場合は以下のコマンドを入力してください

 conda create --name "仮想環境名"

/* (例) testEnv という名前の仮想環境を作る場合 */
conda create --name testEnv

python のバージョンを指定したい場合は以下のコマンドで

conda create --name "仮想環境名" python="使用したいpythonのバージョン"

/* (例) python2.7 で testEnvPy2 という名前の仮想環境を作る場合 */
conda create --name testEnvPy2 python=2.7

仮想環境の起動と終了

作成した仮想環境は以下のコマンドで起動できます

conda activate "仮想環境名"

/* (例) testEnv を起動する場合 */
conda activate testEnv

また仮想環境を終了する場合は以下のコマンドを入力してください

conda deactivate

現在使用できる仮想環境一覧を表示

conda コマンドを用いて作成された仮想環境の一覧は以下のコマンドを使って表示することができます

conda info --envs

pyenv-virtualenv を用いて仮想環境を作成

pyenv で python 環境を構築している場合は pyenv-virtualenv を用いる方法があります。

pyenv-virtualenv は Homebrew でインストールできます

brew install pyenv-virtualenv

pyenv-virtualenv を用いて仮想環境を用いる場合は以下のコマンドを入力

pyenv virtualenv "使用したいpythonのバージョン" "仮想環境名"

/* (例) python3.8.2 で testEnv という名前の仮想環境を作る場合 */
pyenv virtualenv 3.8.2 testEnv

(指定する python のバージョンは pyenv でインストール済みのものに限られます)

仮想環境の起動と終了

作成した仮想環境は pyenv コマンドで起動できます

pyenv activate "仮想環境名"

/* (例) testEnv を起動する場合 */
pyenv activate testEnv

終了する場合は以下のコマンドで

pyenv deactivate

また pyenv で python のバージョンを指定した時と同様に、以下のコマンドを使ってディレクトリ単位 (or システム全体) で仮想環境を実行することもできます

pyenv local (or global) "仮想環境名"

/* (例) 現在のディレクトリで testEnv を起動する場合 */
pyenv local testEnv

/* (例) システム全体で testEnv を起動する場合 */
pyenv global testEnv

現在使用できる仮想環境一覧を表示

仮想環境の一覧は以下のコマンドで確認できます

pyenv virtualenvs

python を安全かつ効率的に使用するには仮想環境を使いこなす必要があります。
プロジェクトごとに異なる仮想環境を使用することでライブラリの衝突を防ぐことができるため、日頃から環境を分けることに慣れておくと良いと思います。

といいながら私もまだ仮想環境を上手く使いこなせている自信はありませんが。。。

Comments

  1. […] (こちらの記事で紹介)・Jupyter Notebook や Jupyter Lab […]

タイトルとURLをコピーしました