anaconda のコマンドリストメモ

## このメモの目的
anaconda を操作しようとするたびにコマンドの検索をしていたので、コマンドリスト的に自分が使うものを羅列します。プロキシ環境下での設定、などのメモも追記しました。
この記事では Windows 7/10 64 bit にインストールした anaconda を使っています。
一つだけ記憶しておくとしたら、`conda info -e` で環境のリストを見られる、ということ。
あとは `activate` で所望の仮想環境に入って作業します。必要に応じて `update --help` `install --help` などを参照しながら、環境のメンテナンスができるはず。 

## conda の仮想環境は何がうれしいのか
仮想環境ごとに異なるバージョンの python （例えば、2.7 と 3.5 と 3.6）を切り替えて使えるので特定のパッケージを使うためには、Python のバージョンを変えなければいけないときに、管理が簡単になります。
また、インストールの手間が短いので、一つの環境にパッケージを沢山詰め込むことなく、クリーンな環境に必要なパッケージだけをインストールした、クリーンな環境で使えます。
実体としては、`C:\Users\[ユーザ名]\Anaconda3\envs` の下にそれぞれのファイル一式がインストールされ、どの環境を利用するかをコマンドラインの `activate` コマンドで選びます。

## コマンドリスト
<dl>
<dt>conda -h</dt>
　<dh>ヘルプ</dh>
<dt>conda info -e</dt>
　<dh>環境のリストを見る</dh>
<dt>activate [環境の名前]</dt>
　<dh>仮想環境に切り替える</dh>
<dt>deactivate</dt>
　<dh>仮想環境を終了する</dh>
<dt>conda update --all</dt>
　<dh>今作業している仮想環境のパッケージ更新</dh>
<dt>conda update ipython spyder notebook numpy matplotlib pandas scikit-image</dt>
　<dh>今作業している仮想環境で、指定したパッケージを更新</dh>
<dt>conda create -n py27 python=2.7 anaconda</dt>
　<dh>anaconda を指定するとデフォルト全部のインストールになる</dh>
<dt>conda create -n scipy36 python=3.6 scipy matplotlib scikit-learn spyder pandas ipython</dt> 
　<dh>Python 3.6 を指定し、列挙したパッケージをインストールした仮想環境を作る。依存関係はお任せで良い。例えばここでは numpy を省略しているけれど、依存関係があって必要なので導入される</dh>
<dt>conda list</dt>
　<dh>現在の仮想環境のパッケージ全リスト</dh>
<dt>conda list -n myenv</dt>
　<dh>仮想環境 'myenv' にインストールされているパッケージの全リスト</dh>
<dt>conda list --export > package-list.txt</dt>
　<dh>環境再現のためのリストを出力</dh>
<dt>conda create -n myenv --file package-list.txt</dt>
　<dh>出力したファイルに基づいて同じ内容でインストール</dh>
</dl>

## anaconda のインストール
Windows 用の [miniconda](https://conda.io/miniconda.html) python 3.6 をインストールし、パッケージは仮想環境下で構築します。

* (base) の環境は使わないで、明示的に選んだ仮想環境下で作業する。
* ライブラリーの導入テストは、新しい仮想環境で行う。

<!--
[データサイエンティストを目指す人のpython環境構築 2016](https://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c "anaconda 紹介記事") を見ることにしています。windows では `source activate` の代わりに `activate` で行けます。
-->

## Windows パスワード付きプロキシ環境下で使う
プロキシ通過に必要な環境変数を設定してから、conda コマンドを使うことで、ネットワークインストールが可能になります。

```
E:\Calc>set HTTP_PROXY=http://[userID]:[passwd]@proxy.of.your.domain:8000
E:\Calc>set HTTPS_PROXY=https://[userID]:[passwd]@proxy.of.your.domain:8000
```

<!--
[Proxy下のWindowsでPython(Anaconda)環境を整える]
(https://qiita.com/mishan88/items/2f9e1c5e9e2572ba8a36 "proxy 設定ファイル") を見て、 Proxy を越えられるようにします。
自分のインストールした状態では、設定ファイルは ``C:\Users\[ユーザ名]\.condarc`` でした。
プロキシのところでパスワードの求められるイントラネット環境などで、プロキシパスワードを平文でファイルに保存しても大丈夫なのであれば、以下のように、proxy サーバーのユーザー名とパスワードを書き込むこともできます。

```
channels:
  - defaults
ssl_verify: true
proxy_servers:
    http: http://[userID]:[passwd]@proxy.of.your.domain:8000
    https: https://[userID]:[passwd]@proxy.of.your.domain:8000
```
-->

## Windows プロキシ環境で pip を使う設定
Windows 7/10 でパスワードつき proxy 環境下で、コンパイルの必要な pip インストールを行うための手順

* c++ コンパイラとして、Visual C++ 2015 Build Tools を使うことを想定します。
* vc のバージョンと python のバージョンとの[対応関係](https://qiita.com/methane/items/2210712763b91e75fdf0)があるとのことなので、ここでは python 3.5 の仮想環境を作って試しました。
* pip で proxy を越えるためには、環境変数をセットします。(conda と共通)
* anaconda で 仮想環境を選んだ上で、Visual C++ 2015 Build Tools の vcvarsall.bat を実行して、コンパイラの環境変数を設定します。ここでは 64ビット windows を設定します。（何もしなくても cl コマンドが通るなら、これは不要かもしれません）

```
E:> cd E:\Calc\pycudaTest 
E:Calc\pycudaTest>activate cuda35
(cuda35) E:\Calc\pycudaTest>set HTTP_PROXY=http://[userID]:[passwd]@proxy.of.your.domain:8000
(cuda35) E:\Calc\pycudaTest>set HTTPS_PROXY=https://[userID]:[passwd]@proxy.of.your.domain:8000
(cuda35) E:\Calc\pycudaTest> pushd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
(cuda35) C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>vcvarsall.bat amd64 
(cuda35) C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>popd
(cuda35) E:\Calc\pycudaTest>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24210 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]
(cuda35) E:\Calc\pycudaTest>pip install pycuda

```

* (vcvarsall.bat x86 とすると [32ビットx86のコンパイラ](https://msdn.microsoft.com/ja-jp/library/f2ccy3wt.aspx) となります)
* NVIDIA の説明に従って、ドライバ、cuCNN をインストールしたあと、このコンパイラ環境で cupy のインストールまで行けました。
* 別の方法として、レジストリを読み取って `vcvarsall.bat amd64` を実行させる[バッチファイル](https://pid123.blogspot.com/2018/01/python-visual-studio.html) を提案している記事もあります。