peach fizz's Programming Labo

Google Appに登録するゲームを作るまでの足跡

Windows10でTensorFlow用のPython仮想環境を作る

PythonではTensorFlowやkerasといった機械学習関連のライブラリを使ってプログラミングを行っていく予定です。ひとつのPython環境に複数のライブラリを同居させて動かしていると、競合問題が発生する可能性が高いため、Pythonの仮想環境を用意し「実験場」として扱うことにしました。

必要な部分だけサクッと知りたい→ 仮想環境構築コマンドまとめ

目次

1 仮想環境が必要な理由
2 venvとvirtualenv
3 仮想環境の作成
4 仮想環境の操作

      

1. 仮想環境が必要な理由

Pythonをいじり始めて間もない頃、ひとつの環境にあれやこれやとたくさんのライブラリをインストールして遊んだことがあります。Pythonには有志の方々が開発した便利なライブラリが数多く存在するので、その挙動を確かめたくて次から次へと試してみたんですね。しかし、ライブラリにはPythonのバージョンによって対応/非対応が存在し、また、複雑な構成の大規模なライブラリを同一環境に同居させることで、依存関係がおかしくなってしまう…という事態に陥りました。そういう事態を回避するために「仮想環境」を構築することが有効だとのちに知りました。

仮想環境というのは、同じマシンの中に構築する「別マシンのようにふるまう環境」のことです。Pythonという大部屋の中に、小さな「実験部屋」を作って、その部屋の中だけで新しいライブラリをインストールして挙動の確認をするので、外側の大部屋に害が及ばないというメリットがあります。大部屋が壊れてしまったら、また一から環境づくりをしなくてはならず大変な手間です。細かにカスタマイズした環境であれば尚更です。でも、仮想環境である実験部屋ならば、あくまでも別マシンでの実験なので、壊れて機能しなくなったなら削除してしまえば良いわけです。便利ですね。

      

1. venvとvirtualenv

venvもvirtualenvも仮想環境構築を行うコマンドです。 venvが純正で、virtualenvはサードパーティ製のライブラリとなります。

以前はvenvでは仮想環境にシフトした時コマンドラインがリセットされるため、 virtualenvの方が使い勝手が良かったようですが、現在のvenvはコマンド履歴を維持したまま 仮想環境への切り替えが可能です。

virtualenvを使う場合はインストールが必要です。

pip install virtualenv

ちなみに、Anaconda環境であれば「conda」を使うのが最も簡単です。

      

1. 仮想環境の作成

testboxと言う名前の仮想環境を作る場合のコマンドです。

  • venvの場合
python -m venv testbox
  • virtualenvの場合
virtualenv testbox

      

1. 仮想環境の操作

作成した仮想空間で作業をする際、「有効化」というステップが必要です。 Pythonを操作する環境に合わせて、次のコマンドを実行します。

// コマンドプロンプト
testbox\Scripts\activate.bat
// Power Shell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
testbox\Scripts\activate.bat

仮想空間を使う作業をまとめると、次の通りです。 既に作成済みの仮想環境で作業をするときは(2)から開始します。

(1)仮想環境フォルダを作成する
(2)フォルダの環境を有効化する
(3)仮想環境フォルダに移動し、作業を行う
(4)作業が完了したら、仮想環境を無効化する

  • venvによるコマンド
python -m venv testbox
\testbox\Scripts\activate.bat
cd testbox
// 作業を行う
deactivate
  • virtualenvを使う
virtualenv testbox
\testbox\Scripts\activate.bat
cd testbox
// 作業を行う
deactivate