こんにちは、はやたす(@hayatasuuu )です。
日本を代表する大手IT企業(?)だと、pip install
でタイムアウトになりライブラリをインストールできなくて大変ですよね。
Pythonは豊富なライブラリを駆使してやりたいことを簡単に実現できるのがメリットです。
なのにライブラリの利用に1つずつ許可を得ていたのでは日が暮れてしまいます。
そこで本記事では「オフラインでpip installしてプロキシ回避する方法」を紹介します。
※方法は紹介しますが、あくまで自己責任の範囲内でお願いします。
Python基礎を学びたい人へ
Udemyで「Python演習問題100問パック」を公開しました。
プログラミングは学んだことをアウトプットしないと、なかなかコードを書けるようになりません。
このコースを受講すれば、たとえ初心者でも、自分でプログラムを組めるようになりますよ!
↓↓↓画像をクリックして「期間限定30%オフ」で購入する↓↓↓
※講座の詳細は「1日で100人突破!UdemyでPython演習問題100問パックをリリースしました」をどうぞ!
オフラインでpip installしてプロキシ回避する方法
「会社のネットワーク環境でpip installしようとすると、外部接続を許可されていなくてタイムアウトしてしまう…。」
このような状況に陥っている場合には、下記の手順を踏めば解決できます。
- PyPIからWheelファイルをダウンロードする
- ダウンロードしたWheelファイルを元にpip installする
- 関連ライブラリを同様の手順でインストールする
さっそく見ていきましょう。
STEP1 : PyPIからWheelファイルをダウンロードする
まずはPyPIにアクセスします。
ここで必要なライブラリのWheelファイルをダウンロードしてきましょう。
参考 : PyPI · The Python Package Index
あなたが必要としてるライブラリ名を検索しましょう。
この記事では”Numpy”を例に進めていきます。
PyPIで”Numpy”と検索したら以下のような画面になるはずです。
以下のように「Download files」を選択しましょう。
ここで自分の環境にあったNumpyのWheelファイルをダウンロードします。
確認事項は以下の2つです。
- OS
- Pythonのバージョン
もし64bitのWindowsマシンでPython3.7を使っているなら、以下のWheelファイルをダウンロードすることになります。
特にこだわりがなければ、デスクトップにダウンロードしたファイルを置いておきましょう。
STEP2 : ダウンロードしたWheelファイルを元にpip installする
次にダウンロードしたWheelファイルを元にpip installしていきます。
ターミナル(ないしコマンドプロンプト)で、デスクトップまで移動しましょう。
$ cd Desktop
ここで先ほどダウンロードしたWheelファイルを使って、ライブラリをインストールしていきます。
Wheelファイルを元にインストールするには以下のコマンドを使います。
$ pip install --no-deps <Wheelファイル名>
先ほどダウンロードしたWheelファイルを例にすると下記になりますね。
$ pip install --no-deps numpy-1.21.2-cp37-cp37m-win_amd64.whl
WindowsだとpipコマンドのPATHが通っていないかもしれません。
その場合にはpython -m
をつけてからpipコマンドを実行します。
$ python -m pip install --no-deps numpy-1.21.2-cp37-cp37m-win_amd64.whl
pip installで--no-deps
オプションをつけることで、
依存関係を無視してWheelファイルからライブラリをインストールできます。
通常どおりにpip installを使うと、依存関係のあるライブラリをPyPIで探してしまうため、ネットワークエラーが発生します。
地味な方法ですが、これでネットワークを介さないでNumpyのインストールができました。
STEP3 : 関連ライブラリを同様の手順でインストールする
ただ、今回紹介したインストール方法だと、依存関係にあるライブラリの導入ができません。
というのも、Pythonライブラリは色々なライブラリの組み合わせで作られていることが多いです。
たとえば、PythonライブラリのKerasは下記のライブラリを裏で使っています。
- absl
- astor
- BeautifulSoup4
- gast
- Keras-Application
- Keras-Preprocessing
- Protobuf
- PyYAML
- scipy
- tensorflow
- termcolor
- wrapt
普通にpip installすれば上記のライブラリは勝手にインストールしてくれます。
でも今回紹介している--no-deps
オプションは、
指定したライブラリをオフラインで単体導入することで外部接続せずにインストールしていました。
なのでKerasのwheelファイルを--no-deps
を付けずにpip installすると失敗します。
それは関連ライブラリをネットワーク接続して、PyPIからインストールするからですね。
話をまとめると、STEP1とSTEP2を使って関連ライブラリも1つずつ導入する必要があります。
若干めんどいですが、この方法が最速なのかなと思っています。
補足 : 上記の手順でオフラインインストールできない場合
もし上記の手順でオフラインインストールできない場合は、pipコマンドのアップデートが必要です。
でもpipコマンドでアップデートしようとすると、
「インターネットを介すので失敗する」という無限ループにハマります。
そこで以下の手順でアップデートを完了させましょう。
- pipのwheelファイルをダウンロードする
- easy installでwheelファイルをインストールする
順番に解説します。
STEP1 : pipのwheelファイルをダウンロードする
まずは以下でpipのWheelファイルをダウンロードしましょう。
参考 : pip · PyPI
このとき、あなたが使っているpipコマンドが最新バージョンでないことを確認してください。
$ pip -V
※もしpipのバージョンを確認してみて最新になっていたら、ここで紹介する手順は不要になります。pipが最新なら他の解決策が必要です。
pipが最新になっていないことを確認したら、Wheelファイルをダウンロードします。
今回はOSやPythonのバージョンが関係ありません。
STEP2 : easy installでwheelファイルをインストールする
次にダウンロードしてきたWheelファイルを使って、pipの最新バージョンをインストールします。
ですがそのまえに、既存で入っているpipをアンインストールしましょう。
$ pip uninstall pip
pipをアンインストールしてしまったので、easy installを使ってpipをインストールします。
下記のコマンドを使って最新のpipをインストールしましょう。
※<pipのWheelファイル名>にはあなたがダウンロードしたファイルの名前を入力します。
$ easy install <pipのWheelファイル名>
Windowsを使っているなら、python -m
をつけて実行ですね。
以上でpipのアップデートが完了です。
あとは必要なライブラリのインストールを進めてみましょう。
まとめ : オフラインでpip installしてプロキシ回避する方法
というわけで、Pythonライブラリのオフラインインストールについて紹介しました。
大企業だと色々な障壁があると思いますが、頑張って乗り越えていきましょう。
もしこれからPythonを勉強していくなら、ぜひ僕のUdemy講座をご利用ください!