メインコンテンツへスキップ
見出し画像

Anacondaによる仮想環境の構築/管理

    1.概要

     (多言語でも同じですが)PythonではPython本体やライブラリ同士のVersion管理が必須でありVersionが異なると動作しないものがたくさんあります。
     例としてDeepLearningで有名なPytorchのVersion1.10系はPython 3.10がサポート対象外です。よってPythonのVersionを最新のものにしたとたんに動かなくなったりします。

     このようなトラブルを回避するために専用の環境「仮想環境」を作成することで他環境に影響を与えずにVesion管理・開発が可能となります。
     今回はAnacondaを使用して仮想環境を構築しました。

    2.操作用コマンド1:一般

     Anacondaでン環境構築・管理するためのコマンドを紹介します。ターミナルはわかりやすさを重視してAnaconda Promptを使用しました。

    2-1.仮想環境の一覧表示:conda info -e

     Anacondaにある全環境を確認するには”conda info -e”を使用します。記法としては"conda info --envs"でも実行可能です。
     *がついている環境が現在使用している環境となります。

    [IN]
    conda info -e
    
    [OUT]
    画像

     参考までにIDE(VS CODE)やAnaconda Navigatorでも同様の結果が確認できました(base(root)のみ)。

    画像
    画像

    2-2.ライブラリの一覧表:conda list

     指定中の環境にインストール済みのライブラリ一覧を表示させるには"conda list"を使用します。環境を指定する場合は"conda list -n <環境名>"or "conda list --name <環境名>"とします。

    [IN]
    conda list
    [IN]
    conda list -n <環境名>
    画像

    2-3.パッケージ情報の検索:conda search <package>

     Pythonライブラリのパッケージ情報を検索する場合は"conda search <package>"を使用します。

    [IN]
    conda search numpy
    画像

    3.仮想環境の作成:conda create

     それでは仮想環境を作成していきます。

    3-1.仮想環境の作成:pythonなし

     通常使用することはないですがPythonすらインストールされない??仮想環境の作成は"conda create -n <環境名>" or "conda create --name <環境名>"です。
     サンプルで"env4note1"を作成します。”conda create -n env4note1”実行後は新しい仮想環境として作成されていることが確認できます。

    [IN]
    conda create -n env4note1
    
    [OUT]
    画像
    画像

    【追加確認:ライブラリのインストール状況(conda list)】
     次章の方法で仮想環境を起動して"conda list"を実行した結果ライブラリは一つも確認されませんでした。

    画像

    3-2.仮想環境の作成:pythonも同時インストール

     普通は仮想環境作成と同時にPythonもインストールします。pythonも同時にインストールする場合は"conda create -n <環境名> python"と実行します。このコードの場合condaに対応している最新のバージョンがインストールされるため、バージョン指定したい場合は”=<Version>”をつけます。

    [IN]
    conda create -n env4note2 python
    
    [IN_Version3.6指定]
    conda create -n env4note2 python=3.6
    画像

    【追加確認:ライブラリのインストール状況(conda list)】
     次章の方法で仮想環境を起動して"conda list"を実行した結果、最低限のライブラリのみ入っていることが確認できました。

    画像


    4.仮想環境の起動/停止(ログイン/ログイン)

    4-1.仮想環境の起動:activate <env>

     仮想環境へ作成後はその環境を起動(ログイン)することで環境内で操作が可能になります。ログイン方法は"activate <環境名>"となります。
    ※Macユーザーは"source activate <環境名>"となります。

    [Terminal]
    activate env4note2

     成功するとターミナルの頭の部分が(base)->(<env名>)に変わります。

    画像
    画像

    4-2.仮想環境の停止:deactivate

     停止は"deactivate"となります。(Macでは"source deactivate")

    [Terminal]
    deactivate

    5.環境の削除:conda remove

     作成した仮想環境を削除したい場合は"conda remove -n <env> --all"を実行します。

    [TERMINAL]
    conda remove -n env4note1 --all

    6.ライブラリのインストール

     仮想環境内にライブラリをインストールします。ある技術ブログでは下記のようなことが記載されていますのでご留意ください。

    【Anacondaの仮想環境に関する噂】
    ●"pip"と"conda"は混ぜるとどこかでエラーが生じる可能性がある。
    ●Anacondaなら"conda install"の方がいい:私はpip installでもエラーが出なかったので特に気にしてません

    6-1.仮想環境起動->install

     まずは"activate"コマンドで仮想環境を起動させて"pip install"や"conda install"でライブラリをインストールします。
     もちろん"requirements.txt"を作成して一括処理も可能です。

    画像

    7.応用編:YAMLファイルによる一括環境構築

     他の人と同じ環境を一から作るのは手間ですが”YAML形式”で仮想環境条件を記載しておくことでその環境を再現できます。

    7-1.YAMLファイルの準備

     環境構築したいYAMLファイルを作成します。通常は出力したYAMLファルルを利用するため自分で一から作成する必要はありません。今回は「NVIDIA Research Projectsのstylegan3」のYAMLファイルを参照しました。
     下記YAMLをそのまま実行するとエラーになるため、実行前に" - cudatoolkit=11.1"の位置をpipの下にずらします。

    [environment.yml]
    name: stylegan3
    channels:
      - pytorch
      - nvidia
    dependencies:
      - python >= 3.8
      - pip
      - numpy>=1.20
      - click>=8.0
      - pillow=8.3.1
      - scipy=1.7.1
      - pytorch=1.9.1
      - cudatoolkit=11.1
      - requests=2.26.0
      - tqdm=4.62.2
      - ninja=1.10.2
      - matplotlib=3.4.2
      - imageio=2.9.0
      - pip:
        - imgui==1.3.0
        - glfw==2.2.0
        - pyopengl==3.1.5
        - imageio-ffmpeg==0.4.3
        - pyspng

    7-2.環境作成:conda env create -f <yml>

     YAMLファイルがある作業ディレクトリ内で"conda env create -f <yml>"を実行します。

    [TERMINAL]
    conda env create -f environment.yml
    画像

    【結果確認】
     処理完了後に"conda info -e"で確認するとnameで指定した"stylegan3"という名前の仮想環境が作成されます。

    画像

    7-3.YAMLファイルの出力:conda env export > <file>

     他の人が環境構築できるように自分が作成した仮想環境のYAMLファイルを出力する場合は"conda env export > <YAMLファイル名>"を実行します。

    [TERMINAL]
    conda env export > test.yml
    画像

    参考資料

    あとがき

     取り急ぎYAMLファイルでのインストールが必要なので先出し



     
     

    KIYO

     
     
    普段は製造業で企画/開発/設計しております。記事はプログラミング・機械学習、IoT関係の記事をメインで作成し、なるべく1つの記事で知りたいことを網羅していきます。内容は学術的より実装・アウトプット(ほしくなるもの)を重視して作成しています。 面白そうな仕事があればやりたいです!

    あなたへのおすすめ