Proxy環境でPythonパッケージをオフラインインストールする方法

環境

会社でプロキシが利用されていたり、どうしてもオフラインでインストールする必要がある時を想定しています。

インストール方法

通常であればpip install パッケージ名でインストールできますが、下のエラーが出てインストールできないことがあります。 proxyで接続できないことが分かります。

WARNING: Retrying (Retry(total=4, connect-None, read-None, redirect-None, status-None)) after connection broken
by ProxyError( Cannot connect to proxy. , OSError ( Tunnei conection fai led: 407 407))': [パッケージ名]
WARNING: Retrying (Retry(total=3, connect-None, read-None, redirect-None, status-None)) after connection broken
by ProxyError( Cannot connect to proxy. , OSError ( Tunnei conection fai led: 407 407))': [パッケージ名]
WARNING: Retrying (Retry(total=2, connect-None, read-None, redirect-None, status-None)) after connection broken
by ProxyError( Cannot connect to proxy. , OSError ( Tunnei conection fai led: 407 407))': [パッケージ名]
WARNING: Retrying (Retry(total=1, connect-None, read-None, redirect-None, status-None)) after connection broken
by ProxyError( Cannot connect to proxy. , OSError ( Tunnei conection fai led: 407 407))': [パッケージ名]
by "ProxyError ( Cannot connect to proxy.',

検索するとproxyの設定を入れる方法などいくつか方法がありますが、今回はPythonのパッケージを直接ダウンロードする方法をまとめます。 pypi.org 今回はExcelを操作することができるopenpyxlをインストールします。 pypi.org

左側にあるNavigation>Download filesを選択し、最新のopenpyxl-3.0.3.tar.gz(2020.6.24現在)を任意のフォルダにダウンロードします。
パッケージによって拡張子が.whlや.gzなどありますが、そのままインストールできます。

ダウンロードが完了したらPowerShell(もしくはコマンドプロンプト)を開き、パッケージをダウンロードしたフォルダに移動します。 デスクトップに保存したときの例を示します。

PS C:\Users\ユーザ名>cd desktop
PS C:\Users\ユーザ名\Desktop>pip install --no-deps [パッケージファイル名]

パッケージファイル名は拡張子も入力してください。

インストールが完了したらpip listで、インストールされたパッケージを確認します。

>pip list

また依存関係を確認します。 パッケージを使うには、他のパッケージが要求されることがあります。 openpyxlの場合「jdcal」と「et_xmlfile」が依存関係にあるので、この2つも同じようにインストールする必要があります。 最終的に以下のように表示されれば問題ありません。

>pip check
No broken requirements found.

「pipdeptree」というパッケージを入れると、依存関係が分かりやすいので気になる方をお試しください。

以上でオフラインインストール作業は完了です。

まとめ

PyPi.orgからパッケージをダウンロード

pip install --no-deps [パッケージファイル名]でインストール

余談

ブログにまとめるときに説明文の位置に迷いますね。 画像の下に説明が多いようですが、ソースコードの場合は説明の下にソースコードが多くみられました。 基本はそのレイアウトで書いていこうと思います。