Pythonをバージョンアップして利用すると、ライブラリが対応していない場合があります。
例えば、機械学習に用いるライブラリのTensorFlowは、Python3.7では対応しておらずPython3.6系でないと動かないといったようなことがあります。(状況はそのうち解消されると思いますが)
現時点で、私の利用してるMacでのAnacondaの環境はPython3.7.4ですので、このような状態に直面します。
これを回避するために、condaコマンドを使って仮想環境を作り、その環境内でPython3.6をインストールして利用するという方法をとります。
ここではそのcondaを使った仮想環境の構築の方法をみていきましょう。
Anacondaで仮想環境を作る方法
Anacondaをインストールしている環境ではcondaコマンドが使えます。このcondaコマンドを使って仮想環境を作るには次のコマンドをターミナルに入力して実行します。
conda create -n [環境名]
[環境名]は英数字で作業環境のわかりやすい任意の文字列を入れましょう。例えば、ここではテスト環境なのでtestenvとして話を進めていきます。
そうすると、次のコマンドを実行します。
conda create -n testenv
作業自体はこれでtestenvという仮想環境は構築されます。
パッケージなども合わせて仮想環境を構築する方法
仮想環境自体はこれでできるのですが、最初の示したようにPythonの違うバージョンで仮想環境を構築しないといけない場合があります。
その時は、次のようにインストールするパッケージも合わせてコマンド入力します。
conda create -n [環境名] [パッケージ名など]
複数のパッケージを合わせてインストールする場合は、スペースを空けて続けて記述します。
ここではpython3.6とanacondaの仮想環境を作るとしましょう。その時は次のようにバージョンを指定してコマンド入力します。
conda create -n testenv python=3.6 anaconda
これを実行すると、仮想環境でPython3.6とanacondaが利用できるようになります。
仮想環境を確認する
仮想環境が出来ているか、次のコマンドで確認します。
conda info -e
そうすると、ターミナルに次のような感じで表示されます。
# conda environments:
#
base * /Users/[HOME名]/opt/anaconda3
testenv /Users/[HOME名]/opt/anaconda3/envs/testenv
baseが元々の環境で、その下に自分の構築した仮想環境名が表示されています。
baseの方に * 印がついていますが、これが現在利用している環境を示しています。
構築した仮想環境を有効化して利用する
構築した仮想環境を利用するには、アクティベートする必要があります。
次のコマンドでアクティベートします。
conda activate [環境名]
ここでの例では、次のようになります。
conda activate testenv
すると、ターミナルのプロンプトの表示の先頭に(環境名)が表示されるようになります。
通常はこのようなプロンプト表示です。
user@usermac:~$
仮想環境をアクティベートすると次のようになります。
(testenv)user@usermac:~$
これで、現在使っている仮想環境がどれを利用しているのが理解できます。
さらにライブラリやパッケージを必要に応じて追加したい場合は、ここでpipやcondaのinstallコマンドを使ってインストールします。
補足:conda activateが使えない?
通常は上記の作業で問題無いはずですが、macOSのCatalinaへのアップデートでターミナルのshellをbashからzshに変更してAnacondaをインストールした場合などに、conda activateがエラーになる場合があります。
その時は、次のコマンドを実行します。
conda init zsh
ターミナルを閉じて再起動すると、activateが使えるようになります。
あるいは、次のようにsourceコマンドで実行することでも、仮想環境が立ち上がります。
source activate [環境名]
仮想環境を無効化する(オフにする)
利用している仮想環境をオフにするには、次のコマンドで無効化します。
conda deactivate
これで、仮想環境が非activate化されるので、ターミナルのプロンプト表示の先頭から(環境名)が消えて通常の表示になります。
次のsourceコマンドでもオフにすることができますが、非推奨だと表示されます。
source deactivate
DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.
activateと共に、condaコマンドで統一した方が良いかもしれませんね。
仮想環境を削除する
不要になった仮想環境は次のコマンドで削除できます。
conda remove -n [環境名] --all
ここの例では、次のようになります。
conda remove -n testenv --all
これで、構築した環境が削除されます。infoコマンドで確認すると無くなっているのが確認できます。
Anaconda Navigatorから仮想環境を作る
ちなみに、Anaconda Navigatorからも仮想環境は作ることができます。
Anaconda Navigatorを起動して、画面左下側にある「Create」という+ボタンを押してたら、上記画像のような画面になります。「Name」のところに環境名を入力して、必要であればPythonのバージョンをドロップダウンから指定して「Create」ボタンをクリックして構築します。
構築した環境の一覧もここで見ることができるので、コマンド入力が苦手な人はこちらから構築してもいいでしょうね。
最後に
ここではcondaを使った仮想環境の構築の方法を扱いました。
condaを利用すればバージョン違いのpythonやライブラリの対応に合わせた作業環境を構築することができます。
Pythonでの仮想環境構築は他にもvenvというものが現在のPython自体に入っています。venvの基本的な使い方は以下にまとめています。