Windows + Anaconda3 + Visual Studio Code でPython開発環境

# 環境

* Windows 10
* Anaconda 2020.02

# Anaconda のインストール

[Anaconda公式サイト](https://www.anaconda.com/)より、ダウンロード。
ここでは [Anaconda3-2020.02-Windows-x86_64.exe](https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe) を使用しています。

インストーラを実行し、Anaconda をインストールします。
注意点は特にありませんが、ここでは以下の設定としています。

* Install for  
  → All Users
* Destination Folder  ※Anacondaのインストール先  
  → C:\ProgramData\Anaconda3
* Advanced Options  
  → いずれもチェックなし

![Anaconda-Install_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/53d21f24-41b3-4643-bbe5-38a2e01bbb1e.png)
![Anaconda-Install_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/89aa046a-ab13-0c3b-b941-e298dc117a05.png)
![Anaconda-Install_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/0c12094d-03a0-ebd0-92f6-c506920e98c0.png)

# Anaconda の設定

## 環境変数の設定

これは設定必須ではありませんが、
デフォルトですと、Anaconda仮想環境はAnacondaのインストール先の配下に作成されます。
別のディレクトリに作成する場合は、環境変数「CONDA_ENVS_PATH」を追加します。
ここでは「D:\CondaEnvs」を指定しています。

![Anaconda-EnvVar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/b369a1cd-6618-8953-6685-f5e368db6c7b.png)

## Anaconda 仮想環境の作成

スタートメニューから Anaconda Navigator を起動します。

![Anaconda-Start.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/ba77031a-ee23-418e-d748-cd6ae1003ba5.png)

「Environments」→「Create」を選択します。

![AnacondaNavigator-CreateEnv_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/c25798bc-5b50-81c9-9b83-62073d870f56.png)

以下を指定し、「Create」をクリックして仮想環境を作成します。

|項目|指定値|
|:---|:---|
|Name|Python37  ※任意|
|Location|D:\CondaEnvs\Python37<br>※環境変数「CONDA_ENVS_PATH」の設定と「Name」指定値により、上記が自動的に指定されます|
|Packages|Python 3.7 を選択|

![AnacondaNavigator-CreateEnv_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/ce8aaa6c-1067-3b90-62a8-23e41e8e5582.png)

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

コードのフォーマット、Lintのために以下のパッケージをインストールします。

* autopep8
* flake8
* mypy

具体的には以下の手順を行います。

1. 「Not installed」を選択
1. 検索項目にパッケージ名を入力
1. 検索結果のチェックボックスをチェック

![AnacondaNavigator-AddPackage_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/7b392f57-a3d4-da0a-48b7-b039144dace4.png)

ここでは上記パッケージの他、サンプルソース用に以下を追加しています。

* numpy
* matplotlib

「Selected」を選択してインストールされるパッケージを確認の上、「Apply」をクリックして、インストールを行います。

![AnacondaNavigator-AddPackage_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/58eaf05e-2130-bb5e-423d-34d88559c430.png)

# Visual Studio Code の設定

適当なディレクトリを切って、VSCode で開きます。
ここでは「D:\Temp\conda-test」としています。

![VSCode-OpenVSCode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/452b4f2e-ccbf-c74b-2864-101bf04994f0.png)

## 拡張機能の追加

以下の拡張機能を追加します。

* Python（ms-python.python）

![VSCode-PythonExtension.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/c4e81240-53ec-ed6d-171b-9c40cdc148e6.png)

## settings.json の設定

### ・ユーザーの設定

conda コマンドが PowerShell ではうまく動作しない（？）のと、
ワークスペースの設定だとまたまたうまく動作してくれない（？）ようなので、
コマンドプロンプトをデフォルトとするよう、ユーザー設定の settings.json にて以下を追加します。

```json:[ユーザーホーム]\AppData\Roaming\Code\User\settings.json
{
    "terminal.integrated.shell.windows": "C:/WINDOWS/System32/cmd.exe",
}
```

### ・ワークスペースの設定

仮想環境等のパス設定、フォーマッター、Lint の設定を行います。

```json:[ワークスペースフォルダ]\.vscode\settings.json
{
    // 拡張機能のロード時にターミナルでPython環境をアクティブにする。
    "python.terminal.activateEnvInCurrentTerminal": true,
    // 仮想環境のパス。作成した Anaconda仮想環境を指定する。
    "python.venvPath": "${env:CONDA_ENVS_PATH}/Python37",
    "python.autoComplete.extraPaths": [
        "${env:CONDA_ENVS_PATH}/Python37/Lib/site-packages",
    ],
    // Pythonコマンドのパス。作成した Anaconda仮想環境配下の python.exe を指定する。
    "python.pythonPath": "${env:CONDA_ENVS_PATH}/Python37/python.exe",
    // condaコマンドのパス。[Anacondaインストール先]/condabin/conda.bat を指定する。
    "python.condaPath": "C:/ProgramData/Anaconda3/condabin/conda.bat",
    // フォーマッターの設定。autopep8 を指定する。
    "python.formatting.provider": "autopep8",
    "python.jediEnabled": false,
    // Lintの設定。flake8、mypy を有効化する。
    "python.linting.flake8Enabled": true,
    "python.linting.mypyEnabled": true,
    "python.linting.pylintEnabled": false,
    // 以下はお好みで。
    "editor.formatOnSave": true,
    "python.autoComplete.addBrackets": true,
}
```

Anaconda Navigator から VSCode を起動する場合、
Anaconda仮想環境が自動的にアクティブ化されるので、
上記中の Pythonパスや仮想環境パスの設定は不要と思います。
エクスプローラ等から直接プロジェクトを開く場合はアクティブ化されないため、上記設定が必要となります。

## 実行

適当にPythonソースファイルを作ります。

![VSCode-NewSource.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/c240f740-e3b9-002d-2db6-559c83a3215b.png)

```python:test.py
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi)
y = np.sin(x)
plt.plot(x, y)
plt.show()
```

設定がうまくいっていれば、ドキュメントの表示やコード補完、フォーマッター、Lint が効くはずです。

![VSCode-ShowDocument.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/f3038726-d7d2-a667-9715-965e2c9d72b9.png)
![VSCode-CodeAssist.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/74a9d19c-6890-ca05-674d-e030244a2948.png)

実行する場合は、「実行」パネルを開いて、
「launch.json ファイルを作成します」→ 「Python File」と選択します。

![VSCode-Create-launch.json.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/90eb7915-5b1b-827a-c4ce-4981df7724c4.png)

勝手に .vscode/launch.json が作成され、Python用の実行構成が設定されます。

![VSCode-Create-launch.json-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/bdfaa980-96f1-b4c0-8c39-88b61a2ccc4e.png)

後は、実行対象のソースを開いて、F5キー押下で実行されます。

![VSCode-Execute.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114386/45f22089-cc72-27d2-d6ce-7f9749bf5b96.png)