【初心者向け】Anacondaインストール後にやるべきこと

# はじめに
- タイトルの通り、Anacondaインストール直後にやるべきことのメモです。
- 初心者向けです。とはいえ、他のプログラミング言語経験があって、機械学習とかそこそこ複雑なことがやりたい人向けです。
- 環境：
    - windows 10（OS依存の話は少な目です）
    - Anaconda3-2019-10
- Anacondaをインストールした直後からパッケージを追加しようとする前の話です。
- 必要な情報は基本的には別サイトで説明されていますので、まとめというかほぼ備忘録となります。

# パッケージ管理ツールについて理解する
- 機械学習、webアプリ開発など、特に業務でpython使う場合には、基本的に自分で必要なパッケージを追加していくことになります。
- パッケージの追加方法について、Webの情報では、それぞれ異なるパッケージマネージャーのどれかを前提としての説明が多く、単純にコピペではなく自分で違いを理解して必要に応じて書き換える必要があります。
- ということで`conda`（パッケージ管理ツールとして）, `pip`, `conda-forge`ぐらいのキーワードは理解しましょう
    - qiita記事：[Anacondaと付き合うための情報を整理する（Pythonのインストール方法とパッケージ管理方法を中心に）](https://qiita.com/ftnext/items/041cf583ba102f69ee45)
    - qiita記事：[`pip` と `conda` は何が違うのか？](https://qiita.com/toto1310/items/14bdbaccd53bed74715c)
    - qiita記事：[condaが探すリポジトリ先を変更する方法(conda-forgeの追加)](https://qiita.com/yuomori/items/9fcbbdf07afd16b6365c)
    - [condaとpip：混ぜるな危険](http://onoz000.hatenablog.com/entry/2018/02/11/142347)
- `pip`と`pip3`についても、知っておくといいかと思います。
    - https://teratail.com/questions/46066
- 要するに`pip`と`conda`を混ぜないほうが無難ということです。

# 仮想環境を理解して用意する
- いくら気を付けながらパッケージを追加しても、環境が壊れることは多々ありますし、特に機械学習のフレームワークとかだとパッケージのバージョンへの依存度が大きく独立した環境が欲しくなってきます。
- また初心者がいきなり仮想環境を作る必要があるかというと、仮想環境作成から入る記事・説明も多いし、何より環境構築で失敗して、Anaconda再インストールしないと、とかやる気をなくしてしまう可能性もあるので、必要だと考えています。
- ちなみに`conda`は仮想環境管理ツールとしての機能も併せ持ってます。
- まずはこちらの[サイト](https://blog.codecamp.jp/programming-python-virtual-environment)などを参照し、仮想環境について理解しましょう。
    - このサイトでも説明されていますが、condaの仮想環境内でpipを使うことも可能です
- そしてパッケージだけでなく、インタプリタも含めて環境を理解できれば十分です。
    - qiita記事：[pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。](https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd)
- Anacondaということで`conda`を使いましょう。
- 仮想環境を作るのは非常に簡単です。
- Anaconda Promptを起動して
- まずは`conda`の最新版を取得します

```
　　conda update -n base -c defaults conda
```

- 仮想環境を作ります

```
　　conda create -n myenv python=3.7
```
- ※myenvが仮想環境名で任意の文字列を設定します、python=3.7はpythonのバージョン指定です

- 作成されていることを確認します。

```
　　conda info -e
```

- 仮想環境を切り替えます

```
　　conda activate myenv
```

- 必要なパッケージをインストールしましょう。
    - ただし、pipとcondaは混ぜないように
- 他コマンドなど理解を深めるために、下記のサイトが役に立ちます
    - qiita記事：[[Python]Anacondaで仮想環境を作る](https://qiita.com/supersaiakujin/items/50def6f33b79f9a61b18)
    - qiita記事：[anaconda のコマンドリストメモ](https://qiita.com/natsuriver/items/4ae6eed5f47e34817090)
    - https://www.python.jp/install/anaconda/conda.html
        - baseをクローンする方法も記述されています。

# 開発環境を用意する
- とりあえず迷ったらVSCodeを使いましょう、情報も多いです。Pycharmでもいいかもしれません。VSCodeが流行る前はSpider使い続けていましたがコーディングもデバッグもやり易いとは思えませんでした。
- VSCodeをインストール後、pyファイルを開くと、Extensionの候補を通知してくれて流れに乗るように進んでいくと、「Python extension for Visual Studio Code」がインストールされて、大体のことはできるようになります。
- 左下のbase:condaをクリックすれば、仮想環境切り替えれます。
- F5でデバッグ実行できます
- 実行はできるのですが、ここでTerminal上では下記のエラーが表示されて鬱陶しいです。ここはWindowsだけしか発生しないと思います。
    - エラー内容
        - conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく
記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
    - 解決方法：
        - 環境変数へのパスを通しましょう
            - C:\USers\***\Anaconda3
            - C:\Users\***\Anaconda3\Scripts
        - パスを通したとしても、違うエラーが表示されます。
            - CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
        - TerminalをPowershellではなくcmd32にします。設定ファイルを変更します。settings.jsonに下記追記します
      
```
　　　"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
```

- 以上でエラーが表示されなくなります。

# まとめ
- パッケージ管理ツールと仮想環境を理解しましょう。
- 開発環境は無難に行くならVSCodeを使いましょう。