2021.04.16  

【Python】wheel(.whl) とは

Python    

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/

コメント
@野地
2021年10月4日18:38
システム内部で何かが競合していて
tensorflowインストールできなくて困っていたところ、
貴殿の示された方法でインストールできました。

大変参考になりました。
本当にありがとうございました!
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信