Anaconda3のプロキシサーバー設定方法：Windows10 + Powershell

# はじめに

　Anaconda3をインストールした場合のプロキシサーバの設定を行う方法を書いておきます。

　社内などのプロキシサーバ経由で `pip` コマンド や　`conda`　コマンドでPythonの各種モジュールをインストールする場合、**プロキシ認証を通す**　ことが必須になりますので、どなたかのお役に立つのでは無いかと思います。

　特にハマりやすいOSがWindows10だと思います。ですので、この記事では、Windows10上でターミナルにPowershellを使った場合を書いておきます。

　思い込みや間違いなどがあるかもしれませんが、そのような場合はどうか生暖かい目でみていただき、ご容赦をお願いいたします。

## Anaconda Powershell Promptを起動します
 
Windowsスタートボタン　▶️　Anaconda3　(64bit)　▶️　Anaconda Powershell Prompt (anaconda3)

## Pythonインタプリタで設定されているプロキシを調べます

```powershell:powershell
> python
>>> import urllib.request
>>> urllib.request.getproxies()
```

以下のように表示されていれば、プロキシサーバは登録されています。
・・・・・のはずなのですが、私の場合は、接続エラーとなりました。

```powershell:powershell
{'http': 'http://proxy.aaa.bbb.co.jp:8080', 'https': 'https://proxy.aaa.bbb.co.jp:8080', 'ftp': 'ftp://proxy.aaaa.bbb.co.jp:8080'}
```

+ proxy.aaa.bbb.co.jp : プロキシサーバー名
+ 8080 : プロキシポート番号

* `ctrl+Z`でPythonインタプリタを抜けます

## Anacondaにプロキシ設定をします

### Anacondaのルートフォルダに`.condarc`ファイルを作成します

`.condarc`ファイルが既にある場合には作成する必要はありません
ルートフォルダは以下のパスになります

#### Windows10の場合
+ インストーラで推奨されている　**ログインユーザーのみ**　でインストールした場合
    + `C:\Users\[ユーザー名]\Anaconda3`
+ グルーバルインストールした場合
    + `C:\Program Files\Anaconda3`

### macOSの場合
私のmacProで調べてみましたが、どうやら、以下がルートディレクトリのようです。

+ `/Applications/anaconda3`

`.condarc`を作成する場合には以下のようなコマンドを打ちます

```powershell:powershell
> cd C:\Users\[ユーザー名]\Anaconda3
> New-Item hoge
> Rename-Item hoge .condarc
```

### 作成した`.condarc`に以下のようにプロキシ設定を記入します

```powershell：.condarc
proxy_servers:
  http: http://id:password@proxy.aaa.bbb.co.jp:8080
  https: https://id:password@proxy.aaa.bbb.co.jp:8080
```
+ id : プロキシサーバの認証ID
+ password : プロキシサーバの認証パスワード
+ proxy.aaa.bbb.co.jp : プロキシサーバー名
+ 8080 : プロキシポート番号

### 設定が反映されているか確認するため、コマンドラインから以下のコマンドを入力します

```powershell:powershell
> conda config --show
```

**proxy_servers** 記述のところに設定したプロキシがあれば設定完了です

```powershell:powershell
proxy_servers:
  http: http://id:password@proxy.aaa.bbb.co.jp:8080
  https: https://id:password@proxy.aaa.bbb.co.jp:8080
```

## プロキシ認証を通ったかテストしてみましょう

### `pip` コマンドそのものをアップデートしてみましょう


```powershell:powershell
> python -m pip install --upgrade pip
```
以下のように上手くアップデートできたら、プロキシ認証は通っています

```powershell:powershell
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/2e/df11ea7e23e7e761d484ed3740285a34e38548cf2bad2bed3dd5768ec8b9/pip-20.1-py2.py3-none-any.whl (1.5MB)
     |████████████████████████████████| 1.5MB 6.8MB/s
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-20.1
```

### アップデートされた　`pip`　コマンドを使ってみましょう

Webアプリケーションフレームワーク　`Django`　をインストールしてみます

```powershell:powershell
> pip install django
```
こんな風に表示されたら成功です

```powershell:powershell
Collecting django
  Downloading Django-3.0.6-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 3.3 MB/s
Requirement already satisfied: pytz in c:\users\p9370347\anaconda3\lib\site-packages (from django) (2019.3)
Collecting sqlparse>=0.2.2
  Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 2.6 MB/s
Collecting asgiref~=3.2
  Downloading asgiref-3.2.7-py2.py3-none-any.whl (19 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.2.7 django-3.0.6 sqlparse-0.3.1
```

### Anaconda Navigator の最新化でも試してみましょう

```powershell:powershell
> conda update anaconda-navigator
> anaconda-navigator --reset
```

　万歳！マンセー！うまくいきました。プロキシサーバ越えの沼から脱出できていますね。

##　追記

Windowsでは以下のようにPowershellコマンドを打てば、OSの`ユーザー環境変数`としてプロキシサーバの設定ができます。私は最近この方法しか使っていません。なお。`システム環境変数`として設定するのはWindowsを開発環境として使っている場合にはあまり必要が無いかもしれませんね。

```powershell:ユーザ環境変数でProxyサーバを設定するコマンド
PS> [System.Environment]::SetEnvironmentVariable("HTTP_PROXY","http://id:password@proxy.aaa.bbb.co.jp:8080","User")
PS> [System.Environment]::SetEnvironmentVariable("HTTPS_PROXY","http://id:password@proxy.aaa.bbb.co.jp:8080","User")
```

以上、ご覧いただきましてどうもありがとうございました。