wheel(.whl) とは
Pythonで利用されるZIPフォーマットのアーカイブファイルのこと。
拡張子はwhl。
オフライン環境でパッケージインストールを行う際などに使用する。
読み方はホイールもしくはウィール。
wheelファイルの例
numpy-1.16.4-cp27-cp27m-manylinux1_x86_64.whl
公式ドキュメントでの解説
PEP427で解説されており、以下はその引用です。
ホイールは、特別にフォーマットされたファイル名と.whl拡張子を持つZIPフォーマットのアーカイブです。特定のインストールスキームでPEP376に従ってインストールされるのとほぼ同じように、単一のディストリビューションが含まれています。専用のインストーラーをお勧めしますが、ホイールファイルは、標準の「解凍」ツールを使用してサイトパッケージに解凍するだけでインストールできますが、その内容を後で最終パスに拡散するのに十分な情報を保持します。
wheelの用途
通常、Python で パッケージやライブラリをインストールする際は、pip など (※)を使用してインターネット経由でダウンロードを行います。
しかし、さまざまな事情でインターネットアクセスが行えない場合、pipのダウンロード機能も制限されてしまいます。
そういった場合に役に立つのがwheelです。
wheelファイルを使用することで、オフライン環境でもパッケージインストールを行うことができます。
※ パッケージ管理システムには「easy_install」というものもあるが、現在はあまり利用されていない。
オフライン環境でのインストール手順例
例えば、numpy1.16.4 Linux版をオフライン環境でインストールしたい場合は、以下の手順を行います。
https://pypi.org/から必要なパッケージを検索する。
欲しいパッケージのバージョンが見つからない場合は、google検索すると見つかる場合がある。
欲しいバージョンのパッケージが見つかったら、以下の画面のダウンロードボタンをクリックしたあと、対応するOS・ビットに合うwhlファイルをクリックする。
そうするとダウンロードが開始されます。
ダウンロードしたファイルをオフライン環境に配置します。
・今回ダウンロードしたファイル
numpy-1.16.4-cp27-cp27m-manylinux1_x86_64.whl
ファイルを配置したディレクトリで以下コマンドを実行すると、パッケージのインストールが行えます。
python -m pip install --no-deps numpy-1.16.4-cp27-cp27m-manylinux1_x86_64.whl numpy
ちなみに -m オプションを使用すると、Pythonのモジュールが格納されている場所にPATHを通してくれます。それにより、OSのPATHにpipが設定されていなくても、pipが実行できるようになります。
さらに余談ですが、 -m が通してくれるPATHはsys.pathで確認できます。
公式: docs.python.org
import sys
sys.path
['/Users/hogeuser/python_wrok/test', '/Users/hogeuser/python_wrok', '/Users/hogeuser/Desktop/docker/DockerDjango', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
参考
https://qiita.com/kenta1984/items/16a14f3bfaf1f257c585
https://www.delftstack.com/ja/howto/python/how-to-install-a-python-package-.whl-file/
https://kakedashi-engineer.appspot.com/2020/03/20/module/