conda 使い方
以前の記事で、Pythonを使用する際に便利なdirenvの紹介をしましたが、仮想環境はcondaを使用するため、condaで仮想環境を使用する際によく使うコマンドを備忘録も兼ねて記載します。
他にも便利なコマンド等ある場合は是非教えて頂けるとありがたいです。

仮想環境 一覧表示
仮想環境を表示するのに、以下の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
コメント