Windows + Python 3.6 + PipEnv + Visual Studio Code でPython開発環境

# ※ 2020/4/25 追記

内容を更新した以下の記事を投稿していますので、そちらを参照してください。
[Windows + Python + PipEnv + Visual Studio Code でPython開発環境](https://qiita.com/youkidkk/items/b674e6ace96eb227cc28)

# 環境

* Windows 10
* Python version 3.6
* PipEnv version 2018.7.1

# Python のインストール

[Python公式サイト](https://www.python.org/)より、ダウンロード。
ここでは python-3.6.5-amd64.exe を使用しています。

インストーラを実行し、Pythonをインストールします。
注意点は以下です。

* pip のインストールを行うこと（-> 2ページ目 「pip」をチェック）
* Python を環境変数に追加すること（-> 3ページ目 「Add Python to environment variables」をチェック）
 
![Python_Install-1.png](https://qiita-image-store.s3.amazonaws.com/0/114386/d020674b-e9d0-6a37-5414-4bbebe4b8e65.png)
![Python_Install-2.png](https://qiita-image-store.s3.amazonaws.com/0/114386/4f557ca4-1b3c-c748-544e-5ab2269384d5.png)
![Python_Install-3.png](https://qiita-image-store.s3.amazonaws.com/0/114386/9671d7c0-6ac5-91ee-f01b-7a4f4859bd06.png)

# PipEnv のインストール

コマンドプロンプトを起動し、以下を実行します。

```shell
pip install pipenv
```

## 環境変数の追加

デフォルトですと PipEnv はユーザーホーム配下にインストールしたパッケージを格納します。
以下の環境変数を追加することによって、プロジェクトのディレクトリに格納されるようになります。

* PIPENV_VENV_IN_PROJECT : true

![PipEnv_環境変数.png](https://qiita-image-store.s3.amazonaws.com/0/114386/24fb5c4f-de67-68c9-94dd-508638a74def.png)


# VS Code の初期設定

## 拡張機能

以下の拡張機能をインストールします。
必要な拡張機能がまとめて入っています。

* Python Extension Pack

![VSCode_拡張機能.png](https://qiita-image-store.s3.amazonaws.com/0/114386/0315441e-7b9e-f9fc-e4ad-6774c6581f23.png)

## VS Code の設定

ファイル -> 基本設定 -> 設定 で以下の設定を追加します。
プロジェクトディレクトリ配下の.venvの仮想環境が使用されるようになります。

```json
"python.venvPath": ".venv",
```

# VS Code のプロジェクト作成～実行まで

## プロジェクトフォルダの作成 ＆ PipEnv環境作成

適当な場所にプロジェクトディレクトリを作成し、VS Codeで開きます。
![VSCode_VSCodeで開く.png](https://qiita-image-store.s3.amazonaws.com/0/114386/fcdbb576-577e-b101-8761-57bf0e5d5176.png)

表示 -> 統合ターミナル でターミナルを開き、PipEnvコマンドを実行します。
引数は使用する Python のバージョンに合わせて変更してください。

> pipenv --python 3.6

![VSCode_PipEnv実行.png](https://qiita-image-store.s3.amazonaws.com/0/114386/450e2b50-28cb-950f-654e-9ab0a83fd466.png)

実行すると、以下がプロジェクト直下に作成されます。

* .venv
* PipFile

## 実行構成の追加


VS Code で作成したプロジェクトディレクトリを開き、デバッグタブで「構成の追加」->「Python」を選択します。

![デバッグ-構成追加.png](https://qiita-image-store.s3.amazonaws.com/0/114386/70785e9b-2cc0-e40c-6ba7-79f2124147d4.png)
![デバッグ-構成追加-2.png](https://qiita-image-store.s3.amazonaws.com/0/114386/0a2c915b-66c9-e708-a5d6-aec3fbfd68c4.png)

すると .vscode/launch.json が作成され、エディターが開きます。
「"name": "Python: Current File"」の箇所に以下のように「"env"」の設定を追加します。
プロジェクトのディレクトリが Pythonパスに追加されます。

```json
        {
            "name": "Python: Current File",
            
            "env": {
                "PYTHONPATH": "${workspaceFolder}"
            }
        },
```

## 実行（＆デバッグ）

Pythonソースを作成し、ソースを開いた状態でデバッグタブで「Python: Current File」を選択し、実行します。

![デバッグ-実行.png](https://qiita-image-store.s3.amazonaws.com/0/114386/3c8adba7-202a-0404-35c7-cb286b99dc11.png)

実行引数を指定したい場合は .vscode/launch.json に「"args"」の設定を追加します。

```json
        {
            "name": "Python: Current File",
            
            "args": [
                "hoge",
                "fuga",
                "piyo"
            ]
        },
```

# VS Code でのフォーマッタ、Lint設定

以下、Lint関連の設定方法です。

## フォーマッタ（autopep8）

コマンドパレットとかでドキュメントのフォーマットを実行すると、、、

![VSCode_フォーマッタ-1.png](https://qiita-image-store.s3.amazonaws.com/0/114386/0fc4684f-bc00-d55f-38fd-6b48975cd386.png)

![VSCode_フォーマッタ-2.png](https://qiita-image-store.s3.amazonaws.com/0/114386/77da2f61-686f-1bc4-023f-df172784d30d.png)

右下にインストールを促すメッセージが出てくるので、「Yes」を押してやると勝手に PipEnv で autopep8 がインストールされます。

autopep8 ではなく、別のフォーマッタを使用したいのであれば、設定（settings.json）に、

```json
"python.formatting.provider": "yapf"
```

などと追記し、上記同様の手順で設定することができます。

## Lint

Lintについても同様で、設定（settings.json）に、

```json
"python.linting.pylintEnabled": true,
"python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": true,
```

などと追記し、ソースを保存したりすれば、同様に右下にメッセージが出てきます。

# .gitignore

```
/.vscode
/.venv
/.mypy_cache
/Pipfile.lock
/tmp
/**/__pycache__
```