Python

condaでよく使うコマンド

Pythonの開発環境としてAnacondaを使うと、パッケージや環境を管理するためのcondaが利用できるようになります。
condaを使うと色々な事ができますが、その中でもよく使うコマンドをメモしておきます。

以下コマンド先頭部分の「> 」は、コマンドプロンプトの表示を表しています。また、コマンドの#以降はコメントですので、実際には入力しません。

例えば、> conda create --help  # createコマンドのヘルプを表示 と記載していれば、実際に入力するコマンドは conda create --help になります。

全てのコマンドに共通して --help という引数が利用できます。以下のように、使い方を調べたいコマンドの後ろに --help を指定すると細かい使い方を表示できます。

> conda --help
> conda create --help

 

 

仮想環境の操作

Pythonで開発を行う場合、用途によって利用するパッケージやPythonのバージョンが違っていることはよくあります。そのため、開発に合わせて専用の仮想環境を作成し、環境を切り替えながら利用する…という方法が一般的です。
仮想環境はpyenvやvirtualenvを使う方法もありますが、Anacondaを利用している場合はcondaを使った管理をおすすめします。

PyCharmなどの統合開発環境(IDE)を使っている場合、IDE側で仮想環境の作成や、利用する仮想環境の指定などが行えるケースが多いと思います。その場合は、IDE側で自動的に処理が行われるため、コマンドラインで仮想環境を切り替える等の操作は不要になります。

仮想環境の一覧を表示

conda env list もしくは conda info -e で現在の仮想環境の一覧を表示できます。名前の右側にアスタリスク(*)が付いている環境が、現在有効になっている環境になります。

> conda env list

# conda environments:
#
base      *  C:\Users\Kurozumi\Anaconda3
jinja2       C:\Users\Kurozumi\Anaconda3\envs\jinja2
py27         C:\Users\Kurozumi\Anaconda3\envs\py27

 

仮想環境の作成(create)

仮想環境を作成する場合、導入するパッケージや使用するPythonのバージョンなどが指定可能です。そのため、Python 3.7 versionのAnacondaをインストールしていたとしても、Python 2.7用の仮想環境を作成する事も可能です。
conda create -n <env_name> <packages> という形式で指定します。導入するパッケージは省略して後から追加することも可能ですし、あらかじめ指定しておくことも可能です。Anacondaに含まれている数多くのパッケージを利用したい場合はanacondaと指定します。また、python=2.7のようにバージョンを指定することで、特定のPythonバージョンの環境を作成することも可能です。(ちなみに、他のパッケージについても=でバージョン指定が可能です)

> conda create -n ml
> conda create -n ml anaconda
> conda create -n ml numpy scipy pandas
> conda create -n ml python=2.7

 

仮想環境の削除(remove)

conda remove -n <env_name> --all で指定した仮想環境を削除可能です。

> conda remove -n ml --all

 

仮想環境の切り替え(activate/deactivate)

作成した仮想環境に切り替えたり、仮想環境から抜けたりするにはactivate/deactivateのコマンドを利用します。以前はWindowsとMacでコマンドが違っていましたが、conda 4.4.0以降では同じコマンドで操作できるようになっています。(以前のコマンドも利用可能ですが、新しい方法の利用が推奨されています)
基本的には、conda activate <env_name> で指定した仮想環境に切り替え、仮想環境から抜けるときには conda deactivate <env_name> とします。

> conda activate ml
> conda deactivate

conda 4.4.0より古いバージョンを利用している場合は、WindowsとMacで操作方法が異なります。

# Windowsの場合(古い方法)
> activate ml
> deactivate

# Macの場合(古い方法)
$ source activate ml
$ source deactivate

 

 

パッケージの管理

これらのパッケージ操作は、現在有効になっている仮想環境に対して行われます。そのため、パッケージ操作を行う前に、activateコマンドを利用して対象の仮想環境を有効にしておいてください。

導入済みのパッケージを表示(list)

> conda list
> conda list numpy

 

パッケージの検索(search)

searchコマンドでパッケージの検索が行えます。ワイルドカードを使って部分一致による検索も可能です。
conda-forgeなどのコミュニティを中心に作成されているパッケージを対象にするには、-c conda-forgeのように-cオプションでチャンネルを指定します。

> conda search numpy
> conda search cuda*
> conda search -c conda-forge jupyterlab

 

パッケージの情報表示(info)

searchコマンドと似ていますが、各パッケージの詳細情報(依存関係など)も含めて調べたい場合はinfoコマンドを利用します。パッケージ名の指定だけだと、大量に情報が表示されるため、バージョンなどを指定して対象を絞ると見やすくなります。

> conda info jupyterlab
> conda info jupyterlab=0.35.3

 

パッケージの導入(install)

installの後ろに導入したいパッケージ名(スペースで区切って複数指定も可能)を指定します。このとき「パッケージ名=バージョン」という形で導入するバージョンも指定できます。
既に導入済みのパッケージはスキップされますが、強制的に再インストールしたい場合は-fオプションを指定します。
デフォルトでは、依存しているパッケージも同時にインストールされるようになります。依存するパッケージを導入したくない場合は --no-deps を付けると指定したパッケージだけを導入できます。

> conda install pylint
> conda install numpy scipy pandas
> conda install python=2.7
> conda install -f numpy
> conda install -c conda-forge jupyterlab
> conda install mkl --no-deps

 

パッケージの更新(update)

> conda update --all
> conda update conda

何も考えずに conda update –all で全てのパッケージをアップデートしてしまうと、これまで動いていたプログラムが動かなくなる可能性があります。そのため、必要なパッケージだけを指定したアップデートをおすすめします。

 

パッケージの削除(remove)

> conda remove pylint

 

pipを使ったパッケージの管理

パッケージによってはcondaではなくpipで提供されているものもありますが、pipとcondaは管理方法が異なるので、condaが認識できないところでpipで導入したパッケージが上書きされてしまうことがあるようです。
そのため、pipで導入されるパッケージがcondaと重複することがなければ問題ありませんが、同じ依存パッケージが含まれていた場合などは環境が壊れる可能性があります。