通常pip install ライブラリ名を実行すれば、自動でインターネットを通じて必要なファイルをダウンロードしインストールしてくれます。しかし、何らかの原因でpipのコマンドからインターネットに接続できない場合は、再接続を数回試みたあとにエラーになってしまいます。

よくある原因がプロキシサーバーによる制限です。その場合は、プロキシサーバーを通過できるように設定すればライブラリのインストールは成功します。

しかし、他の問題でpipのコマンドではダウンロードできない場合は、ブラウザで1つずつファイルをダウンロードしてからインストールする方法もあります。今回はその方法を説明します。

他のネット環境の確保も難しく、現状でいろいろ試してもどうしてもpip installでエラーになってしまう場合にぜひ参考にしてください。

本記事の目次
この記事で用いた環境は、Windows10 + Python3.8 + openpyxl3.0.5です。また、Pythonではファイル一式をまとめたものを「パッケージ」、1つひとつのファイルを「モジュール」と呼びますが、この記事では使い分けしないで一般的な「ライブラリ」という言葉を用いて説明しています。

手順1:必要なファイルをブラウザからダウンロードする

今回は、Excelファイルの操作によく用いられるライブラリ「openpyxl」を例に説明します。

openpyxlだけでなく、jdcalとet_xmlfileというopenpyxlが利用しているライブラリも一緒にインストールします。そのため、全部で3つのライブラリのファイルをダウンロードしておきます。

まず以下のリンクをクリックして「openpyxl」のファイルをダウンロードしてみましょう。

https://pypi.org/project/openpyxl/#files

以下のように拡張子がwhltar.gzの2つのファイルのリンクが表示されます。このように、複数のファイルが表示される場合は、今回は「File Type」が「Source」になっているtar.gzの方をダウンロードします。

openpyxlのダウンロードページ

openpyxl files

ダウンロードしたファイルは、今回は[ドキュメント]フォルダーに「openpyxl_src」フォルダーを作成して保存します。

同様に「jdcal」と「et_xmlfile」についても、以下のリンク先のページからダウンロードして、「openpyxl_src」フォルダーに保存しておきます。

jdcalのダウンロードページ

https://pypi.org/project/jdcal/#files

et_xmlfileのダウンロードページ

https://pypi.org/project/et_xmlfile/#files

手順2:ローカルのフォルダーを指定してpip installを行う

手順1が完了すると、以下のように[ドキュメント]フォルダーの「openpyxl_src」フォルダーに3つのライブラリのファイルが保存された状態になります。

ドキュメント/
  │    │
  │    ├ openpyxl_src/
  │    │    ├ et_xmlfile-1.0.1.tar.gz
  │    │    ├ jdcal-1.4.1.tar.gz
  │    │    └ openpyxl-3.0.5.tar.gz
  │    │

次に、コマンドプロンプトを起動して、以下のコマンドを実行します。

C:¥Users¥Taro> cd Documents
C:¥Users¥Taro¥Documents> py -m pip install --no-index --find-links=openpyxl_src openpyxl

すると以下のようにopenpyxlをインストールできます。

openpyxl installed

なお、上記のコマンドで指定しているオプションの内容は以下のようになります。

--no-index PyPIは参照しない(ローカルを参照するために設定)
--find-links=参照する場所 指定した場所を参照する(今回はopenpyxl_srcフォルダー)

他のライブラリをこの方法でインストールするには?

今回は「openpyxl」を例に説明しましたが、他のライブラリも同様にインストールできます。以下の表は、おもなライブラリのインストールに必要なファイルです。これらのファイルを今回のように適当なフォルダーに保存して、手順2の要領でpip installを実行すればインストールできます。

ライブラリ名 インストールに必要なファイル
python-docx python-docxlxml
python-pptx python-pptxlxmlPillowXlsxWriter
PyPDF2 PyPDF2
requests requestsidnachardetcertifiurllib3
beautifulsoup4 beautifulsoup4soupsieve
Selenium seleniumurllib3

拡張子がwhlの方を使う場合は、ファイル名をチェック!

今回は拡張子がtar.gzのFile TypeがSourceの方を用いましたが、whlの方でもインストールできます。ただし、以下のようにファイル名をチェックして、Pythonのバージョンに対応したファイルを使う必要があります。

〜-py2.py3-none-any.whl Python2とPython3に対応(OSもオールラウンドに対応)
〜-cp37-cp37m-win32.whl Windows32bit版のPython3.7に対応

Pillowのように拡張子がtar.gztarの方のファイルがとても大きい場合は、Pythonのバージョンに対応したwhlを用いるとダウンロードのサイズを小さくできることがあります。