SE備忘録

Anacondaで仮想環境を作成!バージョン管理でエラーも解消♪

  • このエントリーをはてなブックマークに追加
  • LINEで送る

AI の機械学習の一つであるディープラーニングを学ぼうとする時、皆さん何をとりあえず始めますか?

とりあえず Python の参考書のサンプルコードをコーディングして実行しながら覚えていくというようなことをするのではないでしょうか?

私も実際そのやり方でやってみましたが…

ライブラリのバージョン違いでエラーが出まくり!

参考書のサンプルコードの対象バージョンで実行しないと結構な確率でエラーが出ると思います。

今回はそのエラー解消策としてAnaconda の仮想環境でバージョンを揃えてバージョンのエラーを吸収する方法をお伝えします。

Anacondaの仮想環境でライブラリのバージョンエラーを解消!

 

Anacondaの仮想環境でライブラリのバージョンエラーを解消する手順です。

対象バージョンを確認

まず対象バージョンを確認しましょう。

私の場合は Python のバージョンは3.6.4、 tensorflow のバージョンは1.4.0が対象でした

実際な最新バージョンは、2020年5月19日時点で

Python のバージョンは3.7.7、 tensorflow のバージョンは2.1.0

Anaconda でバージョンを確かめるコマンドです。

conda list

これで全てのライブラリのバージョンが表示されます。

Anacondaで仮想環境を作成

その次に、Anacondaで仮想環境を作成します。

Anacondaで仮想環境を作成するコマンドです。

conda create -n 環境名 python=バージョン ライブラリ名=バージョン

先ほど決めたバージョンで仮想環境を追加するには下記のコマンドとなります

conda create -n py36 python=3.6.4 tensorflow=1.4.0

これでpy36という仮想環境が出来上がります。

対象のIDE(統合開発環境)で作成した仮想環境に切り替え

最後に、対象のIDE(統合開発環境)で作成した仮想環境に切り替えればサンプルコードのエラーは解消されることになります。

ここではIDE(統合開発環境)として Visual Studio CODE(通称:VSCode)を 取り上げて、後ほど説明いたします。

ダウングレードして仮想環境を構築する際の落とし穴

バージョンがさほど古くない場合は先ほどのコマンド「conda create …」一発で問題ないのですが

少々古いバージョンをインストールする場合、

コマンド「conda create …」を実行後に、こんなエラーがでることがあります。

Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:

condaが探すリポジトリ先を確認するコマンドと実行結果サンプルです。

conda config --get channels
--add channels 'defaults' # lowest priority

‘defaults’というリポジトリを探しに行っているって事になります。

例でいいますと、のデフォルトというところに存在しなくてエラーとでています。

バージョンが古すぎると、このエラーがでることが多いです。

こちらのコマンドでどこにライブラリが保存されているのか確認することができます。

conda search ライブラリ名

これでめでたくライブラリの保存先(チャネル名)がわかるわけですね。

で、これを解消する方法は2つあります。

方法1)ライブラリを検索先チャネルの追加を設定を行う

1つ目はこちらです。

conda config --append channels conda-forge

先ほどのコマンドで確認すると…

conda config --get channels
--add channels 'conda-forge' # lowest priority
--add channels 'defaults' # highest priority

priority(優先度)は低いですがconda-forgeがリポジトリを探す対象として追加されていることがわかります。

ライブラリ保存先が「conda-forge」の場合は、この方法で解消した方が良いです。
conda-forgeは一般的なので)

ライブラリ保存先が「conda-forge」以外の場合は、次に述べる方法2で解消した方が良いです。

方法2)ライブラリのインストール時に検索先チャネルを指定する

2つ目はこちらです。

こちらで一時的にチャネル名を指定することができます。

conda install -c チャネル名 パッケージ名

ライブラリ保存先が「conda-forge」以外の場合は、こちらの方法で解消すると良いでしょう

これでエラーがめでたく解消するわけです。

 

次に出来上がった仮想環境を、サンプルコードの IDE に適用します。

ここではIDEとして、Visual Studio CODE(通称:VSCode)を 取り上げます。



スポンサーリンク

VSCodeで anaconda 仮想環境を切り替える方法

ターミナルで仮想環境とPathを調べる

コマンドは下記です

conda info -e

先ほどの例で言いますと、こんな感じです

conda info -e
# conda environments:
#
base * C:\Users\ユーザ名\anaconda3
py36 C:\Users\ユーザ名\anaconda3\envs\py36

VSCodeで anaconda 仮想環境を切り替える方法は2つあります。

方法1が楽なのでオススメです。

方法1)コマンドパレットからインタプリターを選択する

この3ステップだけで仮想環境が切り替わります。

  1. メニューの「表示」-「コマンドパレット」を選択します
  2. 「Pyshon:インタプリタを選択」を選ぶ
  3. 対象の仮想環境を選ぶ

方法2)python.pythonPathの設定を変える

ターミナルで仮想環境を切り替える
py36の環境を適用したいので、下記のコマンドを実行します

activate py36

そこでもう一度先ほどのコマンドを実行すると環境が切り替わっていることが確認できます。

conda info -e
# conda environments:
#
base C:\Users\ユーザ名\anaconda3
py36 * C:\Users\ユーザ名\anaconda3\envs\py36


ファイル→基本設定→設定を選択する
python.pythonPathへ作成した仮想環境のパスを登録します

先ほどの例で言いますとこちらのパスを設定することになりますね!

C:\Users\ユーザ名\anaconda3\envs\py36

以上が、仮想環境を切り替える方法となります。

まとめ

いかがでしたでしょうか?

Anacondaの仮想環境でライブラリのバージョンエラーを解消する方法について、お届けしました。

記事がまだショボいのでアップデートしていきます。

ここまで読んでくれてありがとー



スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*