はじめに
私の会社は認証プロキシを経由して外部ネットワークに接続するようになっています。
数か月ぶりにWindows10のマシンでpythonを使うことになり、コマンドプロンプトからpipを実行しようとして認証プロキシ設定にハマってしまったので、自分用メモとして残します。
例のコマンド
いろんなサイトに出てる例のコマンドです。
set HTTP_PROXY=http://<UserName>:<Password>@<HostName>:<PortNo>
set HTTPS_PROXY=http://<UserName>:<Password>@<HostName>:<PortNo>
※以下は自分の環境に置き換えが必要です。<>は不要です。
<UserName>:認証プロキシのユーザー名
<Passwrd>:認証プロキシのパスワード
<HostName>:認証プロキシサーバのホスト名
<PortNo>:認証プロキシサーバのポート番号
サイトによって=の後を""で括っているものもありますが、自分の環境では(結果的に)無くて問題ありませんでした。
このコマンドはpythonを触るたびに使っているので、余裕と思い、pipしてみると、407エラー…。括弧で括ってみたり、「http://」の部分を外してみたり、何度もプロキシサーバのアドレスの入力ミスを確認してみたりしたけど、一向に治る気配なし…・
久々に使うといいことありません。
原因は怠け癖
そういえば数か月前にpythonを使ったときになんかいじったな…ということを思い出しましたが、実際に何をいじったのかは思い出せず。毎度メモを取ろうと思いつつも取らない自分の怠け癖のせいで今回ダメージを喰らいました。
結局、pipにブレークポイントを張って、proxy関連のところまで戻ってみたところ、プロキシのパスワードが古いもの(私の会社では3か月に一度変更が必要)であることが発覚しました。さらにコードを辿ってみたところ、requestsのclient.pyのソースコードに直接プロキシ情報が書き込まれていました(誰かがやったみたいに書いていますが、やったのは自分)!
恐らく前回いじっていた際に、何度もプロキシ情報を入力するのが面倒でやったんだと思います。覚えていないけど。
そもそもこんなことやるべきではないんだけど、やるんだったらせめてメモとれよと思い、教訓として今回初めてQiitaに書いてみました。