Python

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

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

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

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

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

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

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

どーしよー

こんな疑問に答えます。

SE歴25年のオッサンが解説するぞい!
SEおっさん
SEおっさん

今回はエラー解消策として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でPython機械学習系ライブラリをインストール
AnacondaでPython機械学習系ライブラリをインストール
皆さんこんにちは! Python でAIの機械学習しようと思ってる人も多いと思います。 でも手っ取り早く機械学習しようと思うがどうしますか? やっぱりWindo.....

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 …」を実行後に、エラー(PackagesNotFoundError)がでることがあります。

conda create -n 環境名 python=バージョン ライブラリ名=バージョン
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:

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

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

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

例のエラー「PackagesNotFoundError」原因は、デフォルトのリポジトリに存在しなかったので、エラーが発生したということですね。

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

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

conda search ライブラリ名

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

で、エラー「PackagesNotFoundError」を解消する方法は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で「create」した後に「info」した例です。こんな感じで表示されます

conda create -n py36 python=3.6.4 tensorflow=1.4.0
conda info -e
# conda environments:
#
base * C:\Users\ユーザ名\anaconda3
py36 C:\Users\ユーザ名\anaconda3\envs\py36

まだ、この段階ではpy36環境に切替わってません。

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

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

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

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

  1. メニューの「表示」-「コマンドパレット」を選択します
  2. 「Python:インタプリタを選択」を選ぶ
  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

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

ちなみに、
作成した仮想環境を削除するコマンドは次の通り。

conda remove -n 仮想環境の名前 --all


スポンサーリンク

まとめ

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

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

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

Anacondaで仮想環境を作成!バージョン管理でエラーも解消♪
Anacondaで仮想環境を作成!バージョン管理でエラーも解消♪
AI の機械学習の一つであるディープラーニングを学ぼうとする時、皆さん何をとりあえず始めますか? とりあえず Python の参考書のサンプルコードをコーディン.....

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪

LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!

取得資格
  • 応用情報技術者
  • Oracle Master Gold
  • Java Silver SE
  • Java EE Webコンポーネントディベロッパ
  • Python エンジニア認定データ分析
  • 簿記2級


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

コメントを残す

*