pip installでUnicodeDecodeError発生（.netrcに日本語が含まれていたため）


# 環境
* pip 18.0 
* Python 3.6.6
* Anaconda 3.5.2
* Windows10

# 問題
`pip install`を実行したら、「UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 56: illegal multibyte sequence」というエラーが発生しました。

```
>pip install pandas --upgrade                                                                                        
Exception:                                                                                                                                   
Traceback (most recent call last):                                                                                                           
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\basecommand.py", line 141, in main                                    
    status = self.run(options, args)                                                                                                         
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\commands\install.py", line 299, in run                                
    resolver.resolve(requirement_set)                                                                                                        
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\resolve.py", line 102, in resolve                                     
    self._resolve_one(requirement_set, req)                                                                                                  
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\resolve.py", line 256, in _resolve_one                                
    abstract_dist = self._get_abstract_dist_for(req_to_install)                                                                              
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\resolve.py", line 199, in _get_abstract_dist_for                      
    skip_reason = self._check_skip_installed(req)                                                                                            
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\resolve.py", line 170, in _check_skip_installed                       
    self.finder.find_requirement(req_to_install, upgrade=True)                                                                               
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\index.py", line 494, in find_requirement                              
    all_candidates = self.find_all_candidates(req.name)                                                                                      
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\index.py", line 452, in find_all_candidates                           
    for page in self._get_pages(url_locations, project_name):                                                                                
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\index.py", line 597, in _get_pages                                    
    page = self._get_page(location)                                                                                                          
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\index.py", line 715, in _get_page                                     
    return HTMLPage.get_page(link, session=self.session)                                                                                     
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\index.py", line 824, in get_page                                      
    "Cache-Control": "max-age=600",                                                                                                          
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\sessions.py", line 525, in get                                 
    return self.request('GET', url, **kwargs)                                                                                                
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\download.py", line 396, in request                                    
    return super(PipSession, self).request(method, url, *args, **kwargs)                                                                     
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\sessions.py", line 498, in request                             
    prep = self.prepare_request(req)                                                                                                         
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\sessions.py", line 441, in prepare_request                     
    hooks=merge_hooks(request.hooks, self.hooks),                                                                                            
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\models.py", line 313, in prepare                               
    self.prepare_auth(auth, url)                                                                                                             
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\models.py", line 544, in prepare_auth                          
    r = auth(self)                                                                                                                           
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_internal\download.py", line 160, in __call__                                   
    netrc_auth = get_netrc_auth(req.url)                                                                                                     
  File "c:\users\yuji3\anaconda3_5.2.0\lib\site-packages\pip\_vendor\requests\utils.py", line 201, in get_netrc_auth                         
    _netrc = netrc(netrc_path).authenticators(host)                                                                                          
  File "c:\users\yuji3\anaconda3_5.2.0\lib\netrc.py", line 33, in __init__                                                                   
    self._parse(file, fp, default_netrc)                                                                                                     
  File "c:\users\yuji3\anaconda3_5.2.0\lib\netrc.py", line 42, in _parse                                                                     
    toplevel = tt = lexer.get_token()                                                                                                        
  File "c:\users\yuji3\anaconda3_5.2.0\lib\shlex.py", line 105, in get_token                                                                 
    raw = self.read_token()                                                                                                                  
  File "c:\users\yuji3\anaconda3_5.2.0\lib\shlex.py", line 136, in read_token                                                                
    nextchar = self.instream.read(1)                                                                                                         
UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 56: illegal multibyte sequence                                          
```

# 原因

`.netrc`ファイルに、以下のように日本が記載されていたためです。
日本語を取り除いたら、`pip install`は成功しました。


```plain:.netrc
machine example.com
login xxxxxx
password yyyyyy

あ
```

# ハマった理由
原因はしょうもないことでした。これに30分ぐらいハマっていました。
しかし、なぜ私はハマったのでしょうか？

1つ目は、`pip install`で`.netrc`を読み込むことを知らなかったからだと思います。`pip install`のドキュメントにも`.netrc`を読み込むとは書いていませんでした。

2つ目は、スタックトレースの最後がnetrcでなかったからだと思います。スタックトレースの最後はshlex.pyなので、最初はshlex.pyを調査していました。原因が分からないなと悩んでいたときに、スタックトレース全体を見たみたら"netrc"という文字列を見つけ、".netrc"を疑うことができました。

# 疑問
`pip install`はなぜ".netrc"を読み込むのでしょうか？netrcは古い機能（もともとFTPコマンド用）だと思うのですが、どこかで使っているのでしょうか？そしてpi`pip install`のドキュメントにnetrcについて記載されていないのはなぜなんでしょうか？
なぞは深まるばかりです。