Pythonスキルの習得

pipでproxy(プロキシ)を突破する方法 – パスワード認証が必要なケースも併せて解説 –

pipでproxy(プロキシ)を突破する方法 - パスワード認証が必要なケースも併せて解説 -

こんにちは、Zero-Cheeseです。

proxyサーバーを通した、pipコマンドによる、パッケージのインストール方法をご紹介します。

  • パスワード認証が必要なケースも、併せて紹介しています。
  • pipを実行すると、プロキシのせいで、エラーが発生する・・・

という方に向けた、内容となっています。

pipをご存じ無い方は、下記リンク先にて、詳しく解説しています。

【Python】pipの使い型入門 - コマンドライン、Anaconda、PyCharmからの操作方法を解説 -
【Python】pipの使い方入門 - コマンドライン、Anaconda、PyCharmからの操作方法を解説 -Python入門者を対象に、pipの使い型を解説した記事です。 コマンドライン、Anaconda、PyCharmからの操作方法を、わかりやすく解説しました。 ...

pipの操作方法(プロキシを突破する方法)

前半に、pipコマンドによる、対応方法をご紹介しています。

その際、SSL認証エラーが発生するケースがあります。

その対応方法を、本章の後半で取り扱いました。

pipコマンドの、オプションを使用する方法

◆ パスワード認証無し

  • pip install –proxy=http://<proxyのドメイン名 or IPアドレス>:<Port> <パッケージ名>

◆ パスワード認証有り

  • pip install –proxy=http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port> <パッケージ名>

◆ コマンド(一例)

# 認証無しの場合
pip install --proxy=http://192.168.0.1:8080 numpy
    # 下記順番でもOK (パッケージ名を、 --proxy の前に持って来る)
    # pip install numpy --proxy=http://192.168.0.1:8080 

# 認証有りの場合(下記のusername、passwordの場合)
# username: user1
# password:  pass1
pip install --proxy=http://user1:pass1@192.168.0.1:8080 numpy

pipコマンドの、–proxyオプションを省略したい場合

pipの実行の度に、–proxy以下の入力が、面倒くさい方が対象です。

環境変数にプロキシ認証情報を登録する

◆ Windowsの場合

  • set https_proxy=http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port>
  • set https_proxy=http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port>

◆ Mac/Linuxの場合

  • export https_proxy=http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port>
  • export https_proxy=http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port>

以上を実施した上で、pip.conf(Windowの場合:pip.ini)にproxy情報を登録します。

コマンドプロンプト(ターミナル)を開いて

pip config set global.proxy http://<username>:<password>@<proxyのドメイン名 or IPアドレス>:<Port> 

を実行します。

◆ コマンド例

# Windowsの場合
set http_proxy=http://user1:pass1@192.168.0.1:8080
set https_proxy=http://user1:pass1@192.168.0.1:8080

# Macの場合
export http_proxy=http://user1:pass1@192.168.0.1:8080
export https_proxy=http://user1:pass1@192.168.0.1:8080

# 上記を実施後、プロキシを pip.conf(pip.ini)に登録
pip config set global.proxy http://user1:pass1@192.168.0.1:8080

# pipコマンドが実行可能になる。
pip install numpy

上記コマンドを、コマンドプロンプト(ターミナル)から実行しても、環境変数は、永続的に保存されません。(pip.confへの登録は、保存されています。)

再起動すると、本情報が消えています。

永続的に使用する場合は、

  • Mac、Linuxの場合:使用しているシェルに応じて、「.zshrc」や、「.bashrc」に記載
  • Windowsの場合:環境変数ウインドウを開き、登録して下さい。

して下さい。

SSL認証エラーが発生する場合の対応方法

SSLエラー発生時の対応方法を、ご紹介します。

pipコマンド実行時に、下記エラーが、表示される場合があります。

# 長いエラー文の中で、下記文言が含まれている場合
SSL: CERTIFICATE_VERIFY_FAILED

そのような場合は、pipで参照するサイトを、「信じられるサイト」として、コンピュータに教えておく必要があります。

「信じられるサイト」は、下記サイトになります。

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

「信じられるサイト」を、永続的に保存したい場合

登録するコマンドは、以下のとおりです。

pip config set global.trusted-host "pypi.python.org pypi.org files.pythonhosted.org"

上記コマンドを実行すると、設定ファイル(pip.conf)として、書き込まれます。

Mac、Linuxの場合:

$HOME/.config/pip/pip.conf

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

Windowsの場合:

%APPDATA%\pip\pip.ini

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

「信じられるサイト」を、永続的に保存したく無い場合

pipコマンド実行時に、下記のように入力します。

pip install –proxy=http://<proxyのドメイン名 or IPアドレス>:<Port> –trusted-host pypi.python.org –trusted-host pypi.org –trusted-host files.pythonhosted.org <パッケージ名>

コマンド例:

pip install --proxy=http://192.168.0.1:8080 --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org numpy

まとめ

本記事では、proxyサーバーを経由して、pipを使う方法をご紹介しました。

proxy情報を、永続的に保存したいかどうかで、

  • pipコマンド、–proxy オプションを使用する方法
  • 環境変数を利用する方法

を使い分けるのが、いいと思います。

その他にも、パスワードを環境変数に記録したくない等々、総合的に判断して頂ければと思います。

本記事も最後まで読んで頂き、ありがとうございました。

また、お会いしましょう!