Windows10 でpip をupgrade したら「ModuleNotFoundError: No module named 'pip'」が発生するようになった

## この記事は
気軽にpipをupgradeしようとしたら、失敗してハマったので、記録を残しておきます。

※2020/09/22 ページ下部に別コマンドを追記


## 環境
- Windows10
- Python 3.6.8
- pip 19.2.1 --> 19.2.2

## 事象の発生
ふと、pip モジュールをアップグレードしようと思いました。
下記のように実行すると、エラーになりました。

```
> pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/8d/07/f7d7ced2f97ca3098c16565efbe6b15fafcba53e8d9bdb431e09140514b0/pip-19.2.2-py2.py3-none-any.whl (1.4MB)
     |████████████████████████████████| 1.4MB 656kB/s
Installing collected packages: pip
  Found existing installation: pip 19.2.1
    Uninstalling pip-19.2.1:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] アクセスが拒否されました。: 'd:\\python\\python36\\scripts\\pip.exe'
Consider using the `--user` option or check the permissions.
```

アクセス権が無いのか、失敗しています。
丁寧に「--user」オプションをつけるようメッセージも出ています。
「--user」オプションをつけて再度実行します。

```
PS D:\usr\VSCode> pip install --upgrade pip --user
Traceback (most recent call last):
  File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Python\Python36\Scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode> pip -V
Traceback (most recent call last):
  File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Python\Python36\Scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode>
PS D:\usr\VSCode> d:\\python\\python36\\scripts\\pip.exe
Traceback (most recent call last):
  File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\python\python36\scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode> d:\\python\\python36\\scripts\\pip.exe -V
Traceback (most recent call last):
  File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\python\python36\scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
>
```
しかし、すでにpipは帰らぬ人になっていました。
これ以降は、pipを実行するとすべて、```ModuleNotFoundError: No module named 'pip'``` となってしまします。
pipを再インストールしたいが、pipが動作しない・・・。

## pipのインストール
別な手段でインストールする必要があります。

[Installation &#8212; pip 19.2.1 documentation](https://pip.pypa.io/en/stable/installing/) を参考に、下記のファイルをダウンロードします。
[https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)


ダウンロードしたファイルをpythonで実行します。

```
> python get-pip.py
```
完了後、pipが正常動作するようになりました。

```
> pip -V
pip 19.2.2 from d:\python\python36\lib\site-packages\pip (python 3.6)
```
しかも、最新バージョンになっていました。

念のため、upgradeします。
こんどは、きちんと--userオプションをつけて。

```
> pip install --upgrade pip --user
```

すでに最新版になっているため、アップグレードはされませんでしたが、pipの実行は行われました。

ちなみに、
--user オプションをつけると、モジュールをユーザディレクトリにインストールします。
参考：[pip 19.2.1 documentation » Reference Guide](https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-user)


## 2020/09/22 追記

今では、下記のコマンドでpipのアップデートを実行しています。
現状、トラブルは発生していません。

```
$ python -m pip install -U pip
```