Pythonでpip installが使えない時のプロキシとSSL無視

pip installが使えない! プロキシとSSL無視で対策

私がPython環境に必要なライブラリをインストールする時は簡単なpip(Pythonのパッケージ管理システム)を使用しています。pip install ライブラリ名 のシンプルなコマンドでライブラリがインストールできるからです。ただ、PC環境が異なればpipインストールがうまくいかず苦労した経験があります。

pip installが使えなくなったケース

・他のPCではpipが使えるのに私のPCでは使えない
・今までPIPコマンドを使えていたのに急に使えなくなった

後から判明した原因は、pip利用環境において「プロキシ」や「証明書の認証」に対応できていなかったためです。個人利用というよりは企業環境で使えないといったケースです。プログラム初心者にとって「プロキシ、証明書の認証」と言われても難しいですよね。私自身もインストールできない事象にはまり、対策方法を調べつくした今ではpip installで困ったことはありません。

本記事では、皆さまのPC環境でpip installが簡単にできることを目指します。

目次

pipのインストールから利用方法を解説

pipの基本情報

pipは「Pip Installs Packages」の略語でPythonのライブラリを簡単にインストール、アップグレード、アンインストールすることができます。例ではライブラリのnumpyをもとに説明します。

既存ライブラリのバージョン確認

コマンドプロンプトでpip listと入力すると既存環境にインストール済のライブラリが左側に表示され、右側にバージョン番号が表示されます。

pip list

インストール

pip install ライブラリ名でインストールできます。

pip install numpy

バージョン指定のインストールはpip install パッケージ名==バージョン

pip install numpy==1.18.0

いつも最新バージョン入れればいいのでは?と思う方もいるでしょう。確かに最新バージョンであれば今までのバグの修正や最新機能が導入されていて便利に使える点もあります。しかし、現実ではバージョンが違うとうまく動作しないことがあり、確実に動作するバージョンに合わせてインストールする方が調査時間を省くことができます

アップグレード

最新バージョンにアップグレードするにはpip install –upgrade ライブラリ名

pip install --upgrade numpy

upgradeの短縮表記でも可能

pip install -U numpy

アンインストールの方法

不要ライブラリのアンインストールはpip uninstall ライブラリ名

pip uninstall numpy

削除する場合はターミナルから行いましょう。削除時にY/Nと聞かれることがあり、jupyter notebook経由からだとY/Nが表示されずに処理が終わらないケースがあります。

Jupyter Notebookでpipを使う方法

Jupyter Notebookでpipを使う場合は先頭に「!」を付けるのが特徴です。

■コマンドプロンプトから実行

pip install --upgrade pip

■Jupyter notebookのセルから実行

!pip install --upgrade pip

pipが使える環境か確認する方法

コマンドプロンプトで上記の「pip install –upgrade pip」コマンドを入力してください。インストールできればpipが使える環境です。また、Requirement already satisfiedが出た場合は既にライブラリがインストール済なのでpipが使える環境です。

一方pipが使えない場合として下記表示が続き一向にインストールし始める気配がないパターンです。WRRNING:Retrying(Retry(total=4,connect=None・・・・・・

このメッセージはプロキシ制限によりpipコマンドが利用できないことを示しています。お使いのコンピュータが企業ネットワークのプロキシ経由となる為、ライブラリのダウンロードに制限がかかっているのが原因です。この問題の切り分けをする方法はネットワーク回線を会社依存環境以外にした場合にインストールが可能になります。

上記と異なり、今までpipを利用できていたが急に使えなくなった場合です。大半は「certificate verify failed」メッセージが表示され、証明書の認証エラーによりpipが利用できなくなっています。これは証明書の認証を無効にすることで再度pipを利用できるようになります。

それでは上記2点の対処方法についてご紹介します。

pip installができない時の対処法

PROXY環境下でpipを使う方法

企業ネットワークのプロキシ環境でpipを利用する場合は環境変数を設定し、PCを再起動する必要があります。

以下に環境変数の設定方法を説明します。

  1. パソコンの「設定」を開く
  2. 「検索」バーに「環境変数」と入力し、検索結果の中から「環境変数の編集」を選択
  3. 「システム環境変数」セクションの下部にある「新規作成(N)」をクリック
  4. 「HTTP_PROXY」と「HTTPS_PROXY」の2つの環境変数を設定します。変数値は会社のプロキシサーバーのアドレスなので会社のネットワーク管理者にお問い合わせください。

【記入例】
変数名:HTTP_PROXY
変数値:http://windowsid:windowspass@proxy.doml
    ※proxy.doml部分は会社環境で違うので会社のPC担当へ確認してください。

変数名:HTTPS_PROXY
変数値:http://windowsid:windowspass@proxy.doml(同上)

環境変数を設定したらPCを再起動してください。再起動しないと認識されません。

上記手順が完了しますと、プロキシサーバーを経由してpipコマンドを利用できますのでpip installでお試しください。

証明書のSLL認証エラーを無効にしてpipを使う方法

SSLインスペクション下でpipを使う方法

突然pipが使えなくなった場合の証明書の認証対応です。

SSLインスペクションが有効の環境でHTTPS通信が傍受されている場合はpip install が証明書エラーになるので接続先を信頼する処理を入れる必要があります。具体的な方法はPIPコマンドに「pypi.python.org, files.pythonhosted.org, pypi.org 」のドメイン全てを信頼済みにする処理を追加します。

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install <インストール文>

pipのupgradeを例に上記コードを置き換えると下記になります。

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install pip install --upgrade pip

こちらを実施してインストールできれば完了です。

ただ、毎回この長いコードを書くのは手間ですので、元のpip install ライブラリ名で対応できる方法を次にご紹介します。

pip.iniを作成して–trusted-hostを省略する

“%appdata%¥pip” かユーザーのホームディレクトリ(例:c:user\yourname\pip.ini)に下記の pip.ini ファイルを置くことで長いコードを入力せずにpipが使えるようになります。

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

そのpipコマンドWindowsに対応していますか?

最後に、上記を実施しても上手くinstallできないのはpipコマンドがLinuxには対応しているがWindowsに対応していない可能性があります。これだけは私にも対応する手段がなく誰かがWindows用のpipコマンドを作成するのを待つしかないです。過去例でいうとmecab pythonが該当します。

Linuxが利用できる方であればLinuxの方がライブラリのインストールが楽なので環境構築につまづくことも少ないと思いますが、Windowsの操作感が好きで利用している方もいると思いますので該当のpip コマンドがWindowsに対応しているか確認するとよいでしょう。

ご質問やご依頼について

記事やDX化のご質問や依頼はServiceをご覧くださいませ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

著者:ブロガー2つ(につ)

■サイト設立目的
人海戦術の時代からテクノロジー活用による自動化促進の時代に変化。テクノロジー活用を促進するための情報共有やテクノロジー支援を行います。

目次