Pythonの魅力のひとつは、豊富なライブラリと思います。
pip install <インストールしたいモジュール>で簡単に拡張できるのが素晴らしいです。
でも、それができなかったら・・・?
今回は、普通のpip installが通らない環境でローカルでモジュールをインストールする方法をご紹介したいと思います。
できないケースとして多いのは次と思います。
・インターネットに繋がっていない
・繋がっているがアクセス制限がある
そこで次のようにして、問題を解決したいと思います。
やること
・普通のpipが使える環境でモジュールをダウンロードする
・インストールしたい環境にコピーする
・ローカルでモジュールをインストールする
それでは順番に見ていきましょう!
順番にみていく
前準備
前準備です。
次のようなディレクトリ構成を作ります。
requirement.txtにインストールしたいモジュールを書いておきます。
windowsバッチ処理でpip download・installをします。
繰り返し使えるのでwindowsバッチ処理にしましたが、コマンドラインから直接でもOKです。
packages:
フォルダです。
モジュールインストールに使うパッケージを格納します。
download.bat:
windowsバッチ処理です。
pipコマンドで所望のモジュールのパッケージをダウンロードさせます。
local-install.bat:
windowsバッチ処理です。
あらかじめダウンロードしておいたパッケージから、pipコマンドでインストールします。
requirements.txt:
所望のモジュールのリストです。
上記の、ダウンロードしたいモジュール、インストールしたいモジュールを指定します。
前提は次です。
・Pythonが既にインストールされている
・pipが十分新しいものがインストールされている
もう少し詳しく見ていきましょう。
普通のpipが使える環境でモジュールをダウンロードする
「download.bat」ファイルに次を書き込みます。(※名前は適宜変更ください)
pip download -d ./packages -r requirements.txt
pause
requirements.txtファイルを作成し、次を書き込みます。
インストールしたいモジュール名ですね。
「#」でコメントにしたものは無視されます。Pythonプログラムと同じです。
matplotlib
#xml.etree.ElementTree
requests
#json
schedule
opencv-python
同じ階層に「packages」フォルダも作っておきます。
「download.bat」をダブルクリックして実行します。
実行結果の例がこちらです。
インストールしたいモジュールと、関連パッケージをダウンロードしてくれます。
その結果、「packages」フォルダに必要ファイルが入っていればOKです。
インストールしたい環境にコピーする
次にインストールしたい環境にコピーします。
USBメモリでも、クラウドでも、なにがしかのプログラムでファイル転送でも。
やりやすい方法でOKです。
はじめに作ったディレクトリ構成を丸ごとコピーしてください。
ローカルでモジュールをインストールする
「local-install.bat」を作成し、次を書き込みます。(※名前は適宜変更ください)
pip install --no-index --find-links=./packages -r requirements.txt
pip list
pause
「local-install.bat」をダブルクリックして実行します。
実行結果の例がこちらです。
あらかじめダウンロードしたパッケージを参照して、所望のモジュールをインストールします。
最後に、インストール済みのモジュールをリストアップさせています。
所望のモジュールがリストアップされていればインストール成功です!
もし、リストに所望のモジュールが無ければ失敗です。
インストール対象を減らしたり、別の手段でモジュールをインストールしたりが必要になります。
以上になります。
この記事がお役に立てれば幸いです。
それでは、読んで頂きありがとうございました!