condaコマンド 使い方 仮想環境

Conda

conda 使い方

以前の記事で、Pythonを使用する際に便利なdirenvの紹介をしましたが、仮想環境はcondaを使用するため、condaで仮想環境を使用する際によく使うコマンドを備忘録も兼ねて記載します。

他にも便利なコマンド等ある場合は是非教えて頂けるとありがたいです。

direnvインストール Miniconda Ubuntu
direnvインストール Miniconda Ubuntu 久しぶりの記事の更新になりました。 昨年の10月から転職し、プログラマーを始めて、もう半年が過ぎてしまいました。 あっという間ですね。 さて、ブログのネタは大量に溜まっ...

 

仮想環境 一覧表示

仮想環境を表示するのに、以下の2種類あるみたいだけど、結果の出力は同じみたい。
自分は、conda env listの方を使ってる。

$ conda env list

$ conda info -e

現在の仮想環境一覧が表示されます。

$ conda env list
# conda environments:
#
base                  *  /home/ubuntu/miniconda3
test                   /home/ubuntu/miniconda3/envs/test
test1                   /home/ubuntu/miniconda3/envs/test1


$ conda info -e
# conda environments:
#
base                  *  /home/ubuntu/miniconda3
test                   /home/ubuntu/miniconda3/envs/test
test1                   /home/ubuntu/miniconda3/envs/test1

 

仮想環境 作成

以下のコマンドでconda仮想環境の作成ができます。

$ conda create -n [仮想環境名] python=[pythonのバージョン]

「Proceed ([y]/n)?」と聞かれますので、「y」を入力すると、仮想環境が作成されます。

$ conda create -n env1 python=3.6
Solving environment: done

## Package Plan ##

  environment location: /home/ubuntu/miniconda3/envs/env1

  added / updated specs: 
    - python=3.6


The following NEW packages will be INSTALLED:

    ca-certificates: 2018.03.07-0           
    certifi:         2018.4.16-py36_0       
    libedit:         3.1.20170329-h6b74fdf_2
    libffi:          3.2.1-hd88cf55_4       
    libgcc-ng:       7.2.0-hdf63c60_3       
    libstdcxx-ng:    7.2.0-hdf63c60_3       
    ncurses:         6.1-hf484d3e_0         
    openssl:         1.0.2o-h20670df_0      
    pip:             10.0.1-py36_0          
    python:          3.6.5-hc3d631a_2       
    readline:        7.0-ha6073c6_4         
    setuptools:      39.2.0-py36_0          
    sqlite:          3.23.1-he433501_0      
    tk:              8.6.7-hc745277_3       
    wheel:           0.31.1-py36_0          
    xz:              5.2.4-h14c3975_4       
    zlib:            1.2.11-ha838bed_2      

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate env1
#
# To deactivate an active environment, use:
# > source deactivate
#

 

仮想環境 削除

以下のコマンドでconda仮想環境の削除ができます。

conda remove -n [仮想環境名] --all

「Proceed ([y]/n)?」と聞かれますので、「y」を入力すると、仮想環境が削除されます。

$ conda remove -n env1 --all

Remove all packages in environment /home/ubuntu/miniconda3/envs/env1:


## Package Plan ##

  environment location: /home/ubuntu/miniconda3/envs/env1


The following packages will be REMOVED:

    ca-certificates: 2018.03.07-0           
    certifi:         2018.4.16-py36_0       
    libedit:         3.1.20170329-h6b74fdf_2
    libffi:          3.2.1-hd88cf55_4       
    libgcc-ng:       7.2.0-hdf63c60_3       
    libstdcxx-ng:    7.2.0-hdf63c60_3       
    ncurses:         6.1-hf484d3e_0         
    openssl:         1.0.2o-h20670df_0      
    pip:             10.0.1-py36_0          
    python:          3.6.5-hc3d631a_2       
    readline:        7.0-ha6073c6_4         
    setuptools:      39.2.0-py36_0          
    sqlite:          3.23.1-he433501_0      
    tk:              8.6.7-hc745277_3       
    wheel:           0.31.1-py36_0          
    xz:              5.2.4-h14c3975_4       
    zlib:            1.2.11-ha838bed_2      

Proceed ([y]/n)? y

 

仮想環境 Activate

作成したconda仮想環境を使用する際は、以下のコマンドでアクティベートしてください。

$ source activate [仮想環境名]

env1の仮想環境をアクティベートしています。
仮想環境内に入ると、プロンプトの先頭に現在いる仮想環境名が表示されます。

$ source activate env1
(env1) ubuntu@linus:~/work$

 

仮想環境 Deactivate

conda仮想環境から抜ける場合は、以下のコマンドでディアクティベートしてください。

$ source deactivate

env1の仮想環境をディアクティベートしています。
仮想環境からでると、プロンプトの先頭にあった仮想環境名が表示されなくなり、元に戻ります。

(env1) ubuntu@linus:~/work$ source deactivate
ubuntu@linus:~/work$

 

仮想環境内のパッケージ一覧

conda仮想環境でインストールされているパッケージを表示できます。

$ conda list

(env1) ubuntu@linus:~/work$ conda list
# packages in environment at /home/ubuntu/miniconda3/envs/env1:
#
# Name                    Version                   Build  Channel
ca-certificates           2018.03.07                    0  
certifi                   2018.4.16                py36_0  
libedit                   3.1.20170329         h6b74fdf_2  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 7.2.0                hdf63c60_3  
libstdcxx-ng              7.2.0                hdf63c60_3  
ncurses                   6.1                  hf484d3e_0  
openssl                   1.0.2o               h20670df_0  
pip                       10.0.1                   py36_0  
python                    3.6.5                hc3d631a_2  
readline                  7.0                  ha6073c6_4  
setuptools                39.2.0                   py36_0  
sqlite                    3.23.1               he433501_0  
tk                        8.6.7                hc745277_3  
wheel                     0.31.1                   py36_0  
xz                        5.2.4                h14c3975_4  
zlib                      1.2.11               ha838bed_2

 

パッケージのインストール

conda仮想環境にパッケージをインストールできます。

$ conda install [パッケージ名]

試しにdjangoをインストールしてみました。

$ conda install django
Solving environment: done

## Package Plan ##

  environment location: /home/ubuntu/miniconda3/envs/env1

  added / updated specs: 
    - django


The following NEW packages will be INSTALLED:

    django: 2.0.5-py36hd476221_0
    pytz:   2018.4-py36_0       

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

 

バージョン指定時の注意点

こちらはdjangoの古いバージョンをインストールしてみましたが、バージョンを指定するときに注意が必要です。
pipであれば、「$ pip install django==1.11」のように「==」とイコール二個ですが、condaはイコール一個なので、間違えないようにしてください。

$ conda install django=1.11
Solving environment: done

## Package Plan ##

  environment location: /home/ubuntu/miniconda3/envs/env1

  added / updated specs: 
    - django=1.11


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    django-1.11.10             |   py36hd476221_0         4.6 MB

The following packages will be DOWNGRADED:

    django: 2.0.5-py36hd476221_0 --> 1.11.10-py36hd476221_0

Proceed ([y]/n)? y


Downloading and Extracting Packages
django-1.11.10       |  4.6 MB | ####################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

 

パッケージがない場合

例えば、「social-auth-app-django」のパッケージをインストールしようとすると、以下のようにありませんと表示されてしまいます。

$ conda install social-auth-app-django
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - social-auth-app-django

Current channels:

  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/linux-64
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/pro/linux-64
  - https://repo.anaconda.com/pkgs/pro/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

 

その場合は、以下のように、「-c チャネル名」を指定しましょう。
「conda-forge」がよく使われますが、パッケージ名でググれば、どのチャネルを指定すればよいかすぐ見つかるかと思います。

$ conda install -c conda-forge social-auth-app-django
Solving environment: done

## Package Plan ##

  environment location: /home/ubuntu/miniconda3/envs/env1

  added / updated specs: 
    - social-auth-app-django


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2018.4.16          |           py36_0         142 KB  conda-forge

The following NEW packages will be INSTALLED:

    asn1crypto:             0.24.0-py36_0     conda-forge
    blinker:                1.4-py_0          conda-forge
    cffi:                   1.11.5-py36_0     conda-forge
    chardet:                3.0.4-py36_0      conda-forge
    cryptography:           2.2.1-py36_0      conda-forge
    defusedxml:             0.5.0-py36_0      conda-forge
    idna:                   2.7-py36_0        conda-forge
    oauthlib:               2.1.0-py_0        conda-forge
    pycparser:              2.18-py36_0       conda-forge
    pyjwt:                  1.6.4-py_0        conda-forge
    pyopenssl:              18.0.0-py36_0     conda-forge
    pysocks:                1.6.8-py36_1      conda-forge
    python3-openid:         3.1.0-py36_0      conda-forge
    requests:               2.19.1-py36_0     conda-forge
    requests-oauthlib:      0.8.0-py36_1      conda-forge
    six:                    1.11.0-py36_1     conda-forge
    social-auth-app-django: 2.1.0-py_0        conda-forge
    social-auth-core:       1.7.0-py_0        conda-forge
    urllib3:                1.22-py36_0       conda-forge

The following packages will be UPDATED:

    ca-certificates:        2018.03.07-0                  --> 2018.4.16-0      conda-forge
    certifi:                2018.4.16-py36_0              --> 2018.4.16-py36_0 conda-forge
    openssl:                1.0.2o-h20670df_0             --> 1.0.2o-0         conda-forge

Proceed ([y]/n)? y


Downloading and Extracting Packages
certifi-2018.4.16    |  142 KB | ####################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

 

仮想環境 リネーム

仮想環境のリネームは、一度別名で環境をクローンして、古い環境を削除するという方法が一般的のようです。

$ conda create --name [作成したい仮想環境名] --clone [元の仮想環境名]
$ conda remove --name [元の仮想環境名] --all

$ conda create --name env1_new_name --clone env1
$ conda remove --name env1 --all

 

コメント