Pythonはpipを使う事で様々なライブラリを簡単にインストールすることが出来ますが、逆にpipインストールが出来ない環境だとPythonの利点が半減します。ここでは社内プロキシ等でpipインストールエラーになる問題を解決する方法を紹介します。
こんにちは。wat(@watlablog)です。ここではpipがプロキシエラーになる問題を解決します!
プロキシエラーとは?
エラーの内容
例えば、pythonのグラフ描画ライブラリであるmatplotlibをインストールしようとした時、
最も簡単な方法は以下のコマンドをWindowsであればコマンドプロンプトに打ち込むものです。pipについての詳細は「Pythonのパッケージ管理ツール pipの使い方とコマンド集」に書きましたので、是非こちらもご覧下さい。
1 |
python -m pip install matplotlib |
通常、うまく行けば「Successfully installed」の文字が表示され事なきを得るのですが、環境によっては以下のエラーメッセージが出ます。
「Retrying (Retry~…)'ProxyError('Cannot connect to proxy~…」
このメッセージが今回扱うプロキシエラーです。
プロキシエラーはサーバー環境が原因
このエラー、原因はプロキシサーバーのセキュリティでpipインストールに必要なPyPIへの接続がブロックされているだけです。しっかりした会社等、プロキシサーバーが設置され管理されている場合によく起こるエラーです。
「日々の業務改善にPythonは大変効果的だけど、自分の社内環境では入れることが出来ない!」
…となる人も割といるのではないでしょうか?
ここではそういうモチベーションの高い人のために、エラーを回避してpipインストールする方法を紹介します。
…とは言え、何も違法な事やハッキング、クラッキングをする事は無いので安心して下さい。
プロキシエラーを解決する2つの方法
①プロキシ設定をしてインストールする方法
プロキシサーバーの認証には、
①ユーザ名(例:user)
②パスワード(例:pass)
③ホスト名やIPアドレス(例:proxy.xxx.com等)
④ポート番号(例:8080)
が必要です。
これらの情報がわかっている場合、Windowsであればコマンドプロンプトに以下を打ち込むことで認証可能です。
1 2 |
set HTTP_PROXY=http://①:②@③:④ set HTTPS_PROXY=https://①:②@③:④ |
後は通常のpip installを実行すればプロキシ認証にブロックされることなくインストールが可能になるはずです(全ての環境で確認はしていませんが)。
②オフライン環境でpipを使う方法
プロキシエラーが出たとしても、上記①~④の情報が良くわからない!という場合もあると思います。
そんな時、インターネットブラウザでPyPIが閲覧できる環境であれば、ライブラリをPyPIからダウンロードし、インターネット接続を使わないでpipインストールする方法もあります。
コマンドプロンプトから実行してプロキシエラーになっても、通常のインターネットブラウザからであればPyPIが見れるという環境も多いと思います。
PyPI公式は以下リンクです。
PyPI公式ページ:https://pypi.org/
pip installコマンドはこのWebサイトからライブラリを検索してダウンロード、インストールしているので、ダウンロードまでを手動で行おうという方法です。
以下にその方法を紹介します。
①PyPI公式ページからライブラリをダウンロードする
PyPI公式ページ(https://pypi.org/)へアクセスしたら、Python開発環境へインストールしたいライブラリ名を検索窓に記入し、検索します。
ここではmatplotlibの場合で説明していきます。
検索結果から目的のライブラリパッケージを選択します。
しかし、似たような名前のパッケージが沢山あり間違いやすいので、説明を読む若干の英語力が必要になります。
遷移した先のページでは左上に「pip install matplotlib」で入れることができるとわかるのでここで安心し、Download filesをクリックします。
Download filesの中から、自分のPC環境に合わせたインストーラを選択し、名前を付けて任意の場所に保存します。
ここで、cpとはPythonのバージョン(Python3.7ならcp37)です。以下の画像ではWindows64bitの場合のインストーラである.whlファイルを選択しています。
②コマンドプロンプトからオフラインのpip installをする
続いてコマンドプロンプトを開き、カレントディレクトリを先ほどインストーラをダウンロードしたフォルダにするため、以下のコマンドを打ち込み実行しましょう。
1 |
cd 〇〇※インストーラをダウンロードしたフォルダのアドレス |
カレントディレクトリが移動したら、最後に以下のコマンドでpip installします。「--no-deps」が付くことでPyPIのWebサイトを参照しなくなり、ダウンロードしてきたインストーラからインストールされるようになります。
1 |
python -m pip install --no-deps 〇〇※インストーラのファイル名 |
この方法はオフラインでインストールが出来るため、プロキシエラーを解決するだけでなく、例えば組織のネットワークに繋いでいないPCにもインストールすることができます。
Windowsのサポート切れバージョン等の理由で、まだ使えるのにセキュリティ上社内ネットワークに繋いじゃいけないPCとかありませんか?
方法②の注意点
但し、この②の方法でインストールをしていると、1つやっかいなこともあります。それは、手動でインストールしなければいけないライブラリが増えるという点です。
例えば、matplotlibをpip installすれば通常はそれでPythonによるグラフ描画がすぐできるのですが、ライブラリをimportしてコードを実行するとModuleエラーが出る場合があります。
以下に僕が実際に手動インストールした時に足りなかったライブラリを記載しておきます。コード上でimportして実行を繰り返せば、何が足りないかはエラーメッセージで表示されるので、必要無いかも知れませんが参考までに。
matplotlib
・matplotlib
・cycler
・kiwisolver
・pyparsing
・six
pandas
・pandas
・xlrd
scikit-learn
・scikit-learn
・pytz
・python-dateutil
・joblib
まとめ
pip installで発生するプロキシエラーは組織等で設定しているプロキシサーバーが原因と考えられます。ここではエラーを回避する2つの方法を紹介しました。
Pythonは便利なライブラリをインストールしないとあまり旨味が無いと言って過言ではないと思います。
どんな環境であろうとも、是非今回の方法で自由にライブラリをインストールして有意義なPython Lifeを楽しみましょう!
どんな場所でも、Excelより高度で高速なPythonプログラミングによる情報処理をやってみましょう!Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!
コメント