Enable python intellisense for Visual Studio Code.

#前置き
お久しぶりです[null](https://twitter.com/null_Y_K)です。
本業が忙しく何もできていない状況でしたが、ようやく落ち着いて来たので時間があるときに
Visual Studio CodeでPython使って何かしてたりします。

しかしコーディングする時に便利なIntelliSenseがPythonで有効にならない問題が発生してかなり困っていました。
公式ドキュメントの[troubleshooting_intellisense](https://donjayamanne.github.io/pythonVSCodeDocs/docs/troubleshooting_intellisense/)を試しても解決しなかったので、他に方法ないか調べたところ
GitHubのissuesで[これを試してみて](https://github.com/MicrosoftDocs/intellicode/issues/69)とあったので試したところIntelliSenseが有効化されました。

今回はそんなIntelliSenseを有効化する手順をまとめました。


# Visual Studio CodeでPythonのIntelliSenseを有効化
本記事ではVisual Studio Codeの拡張機能である、
Microsoft製PythonのIntelliSenseを有効化する手順となります。

# 実行環境
**OS**
- Windows10(64bit)

**Application**
- Visual Studio Code 1.32.3
- Python 3.7.2(32 bit)

**Visual Studio Code Extension**
- Python(ms-python.python)

**Python Module**
- linter用にpylintをpip installで入れている以外は初期状態

```bash
pip list
Package           Version
----------------- -------
astroid           2.2.5
colorama          0.4.1
isort             4.3.15
lazy-object-proxy 1.3.1
mccabe            0.6.1
pip               18.1
pylint            2.3.1
setuptools        40.6.2
six               1.12.0
typed-ast         1.3.1
wrapt             1.11.1
```

# 問題のIntelliSenseが有効にならない状態

multiprocessingを使用して別プロセスで関数を使用しようとしています。
この時はstart関数をIntelliSenseで出そうとしてます。

IntelliSenseを起動すると有効になっているように見えますが、
実はファイル内の文字列が羅列されているだけでstart関数やProcessで利用できる関数が出てきません。

![2019-03-16_00h26_20.png](https://qiita-image-store.s3.amazonaws.com/0/298786/d0f517e1-f6b7-5b79-0fec-fd00b9f55e32.png)

これを解決してstart関数が出る状態します。

# 有効化する手順

## 方法１
.vscode ディレクトリに保存される**settings.json** を使用します。
以下のようにsettings.jsonに設定を行い保存します。

```json
{
    "python.pythonPath": "C:\\Program Files (x86)\\Python37-32\\python.exe",
    "python.jediEnabled": false
}
```

※ python.pythonPathはSelectorで自動的に設定されたもので無視しても構いません

するとVisual Studio CodeがReloadしろとインフォメーションを出してくるのでリロードします。
![2019-03-16_00h33_00.png](https://qiita-image-store.s3.amazonaws.com/0/298786/3bc881b4-fe61-d866-0655-91a27346c895.png)

## 方法２
Visual Studio Codeの基本設定から**python.jediEnabled**を変更します。

設定を選択します。
![2019-03-16_00h37_24.png](https://qiita-image-store.s3.amazonaws.com/0/298786/b576b533-7147-ca48-6bd6-9a5a03d4df12.png)

python.jediEnabledを検索して、チェックを外します。
![2019-03-16_00h38_14.png](https://qiita-image-store.s3.amazonaws.com/0/298786/8f0efc1a-6b50-04e6-f16e-1f4e413fd750.png)

するとVisual Studio CodeがReloadしろとインフォメーションを出してくるのでリロードします。
![2019-03-16_00h40_17.png](https://qiita-image-store.s3.amazonaws.com/0/298786/12f7858e-9630-2a29-b816-cd8f364f3a68.png)

## リロード
リロードを行い、Pythonの出力を確認すると以下のように**Microsoft Python Language server.**が起動します。
無い場合は自動的にインストールされます。

![2019-03-16_00h42_02.png](https://qiita-image-store.s3.amazonaws.com/0/298786/8ec381c7-1504-23c3-3927-34f5e73ff51f.png)

## 完了

お疲れ様でした。
これでPythonでIntelliSenseが有効になりました。
Ctrl+SpaceなどでIntelliSenseを起動してみた状態。

![2019-03-16_00h46_05.png](https://qiita-image-store.s3.amazonaws.com/0/298786/79534ff7-a7c3-46dd-3f9b-284889d274b9.png)

# 蛇足
Microsoft Python Language serverが何者なのか
こいつは元々Visual StudioのPythonのインテリセンスエンジンとして使用されていました。

それが去年の夏頃にPython拡張機能がアップデートされて、Visual Studio Codeにも使用できるようになりました。
[Introducing the Python Language Server](https://devblogs.microsoft.com/python/introducing-the-python-language-server/)