こんにちは、Zero-Cheeseです。
proxyサーバーを通した、pipコマンドによる、パッケージのインストール方法をご紹介します。
- パスワード認証が必要なケースも、併せて紹介しています。
- pipを実行すると、プロキシのせいで、エラーが発生する・・・
という方に向けた、内容となっています。
pipをご存じ無い方は、下記リンク先にて、詳しく解説しています。
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 オプションを使用する方法
- 環境変数を利用する方法
を使い分けるのが、いいと思います。
その他にも、パスワードを環境変数に記録したくない等々、総合的に判断して頂ければと思います。
本記事も最後まで読んで頂き、ありがとうございました。
また、お会いしましょう!