オフラインでpip installしてプロキシ回避する方法

Python pip オフライン インストール
  • URLをコピーしました!

こんにちは、はやたす(@hayatasuuu )です。

日本を代表する大手IT企業(?)だと
pip installでタイムアウトになりライブラリをインストールできなくて大変ですよね。

Pythonは豊富なライブラリを駆使して
やりたいことを簡単に実現できるのがメリットです。

なのにライブラリの利用に1つずつ許可を得ていたのでは日が暮れてしまいます。

というか、そんなことしているから競争力がなくなるんです。

そこで本記事では「オフラインでpip installしてプロキシ回避する方法」を紹介します。

※方法は紹介しますが、あくまで自己責任の範囲内でお願いします。

目次

オフラインでpip installしてプロキシ回避する方法

会社のネットワーク環境でpip installしようとすると、外部接続を許可されていなくてタイムアウトしてしまう…。

このような状況に陥っている場合には、下記の手順を踏めば解決できます。

  1. PyPIからWheelファイルをダウンロードする
  2. ダウンロードしたWheelファイルを元にpip installする
  3. 関連ライブラリを同様の手順でインストールする

さっそく見ていきましょう。

STEP1 : PyPIからWheelファイルをダウンロードする

まずはPyPIにアクセスします。
ここで必要なライブラリのWheelファイルをダウンロードしてきましょう。

参考 : PyPI · The Python Package Index

あなたが必要としてるライブラリ名を検索しましょう。
この記事では”Numpy”を例に進めていきます。

PyPIで”Numpy”と検索したら以下のような画面になるはずです。

python-library-offline-install1

以下のように「Download files」を選択しましょう。

python-library-offline-install2

ここで自分の環境にあったNumpyのWheelファイルをダウンロードします。

確認事項は以下の2つです。

  • OS
  • Pythonのバージョン

もし64bitのWindowsマシンでPython3.7を使っているなら、以下のWheelファイルをダウンロードすることになります。

python-library-offline-install3

特にこだわりがなければ、デスクトップにダウンロードしたファイルを置いておきましょう。

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
  • google
  • 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ファイルをダウンロードします。

python-library-offline-install4

今回は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ライブラリのオフラインインストールについて紹介しました。

この記事を最初に書いたのは2018〜2019年でしたが、今でも読まれ続けているので正直驚きました。

もうライブラリのインストールでいちいち申請なんてやらないと思っていたからです。

(日本においては)なかなか時代が変わらないものですね。

大企業だと色々な障壁があると思いますが、頑張って乗り越えていきましょう。

もしこれからPythonを勉強していくなら、ぜひ僕のUdemy講座をご利用ください!

あわせて読みたい
【割引クーポン付】はやたすのUdemy講座まとめ こんにちは、はやたす(@hayatasuuu )です。ここでは僕のUdemy講座をクーポン付きで掲載しておきます。 もし定価で買おうとしてる方がいたら、ぜひクーポンを使って購入...
SNSに投稿して読み返す
  • URLをコピーしました!
  • URLをコピーしました!
目次