IT系ノウハウ Linux Python

オフラインでpythonライブラリを手動でインストールする方法|pip, yum, numpy, [Errno 101] ネットワークに届きません, whl is not a supported wheel on this platform

事象

以下のように、例えば会社のマシンからだとネットワークが遮断されていることがあるため pip install が使えないことがある。

[Errno 101] ネットワークに届きません

実行例

[root@myhost ]$ pip3.6 install numpy
Collecting numpy
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f5facea9be0>: Failed to establish a new connection: [Errno 101] ネットワークに届きません',)': /simple/numpy/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f5facea9828>: Failed to establish a new connection: [Errno 101] ネットワークに届きません',)': /simple/numpy/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f5facea9ef0>: Failed to establish a new connection: [Errno 101] ネットワークに届きません',)': /simple/numpy/
^COperation cancelled by user

回避策

.whlファイルを利用するとpythonのライブラリをインストールすることが可能

この公式サイトから該当するライブラリを検索してダウンロードしよう

PyPI · The Python Package Index
PyPI · The Python Package Index

pypi.org

.whlファイルを適当な場所に配置し、以下コマンドでインストールをする

pip3.6 install --no-deps <.whlファイル名>

実行例

[root@myhost ]$ pip3.6 install --no-deps numpy-1.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 
numpy-1.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl is not a supported wheel on this platform.
[root@myhost ]$ pip3.6 install --no-deps numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl 
numpy-1.19.5-cp39-cp39-manylinux2010_x86_64.whl is not a supported wheel on this platform.

is not a supported wheel on this platform エラー

このようなエラーが発生する場合、ダウンロードする .whlファイルが間違っているので正しいファイルをダウンロードし直す必要がある。
使用している環境がサポートしているバージョンを確認するためのコマンドは以下。

from pip._internal.pep425tags import get_supported
get_supported()

実行例

[root@myhost ]$ python3.6
Python 3.6.9 (default, Nov 17 2019, 01:34:44) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pip._internal.pep425tags import get_supported
>>> get_supported()
[('cp36', 'cp36m', 'manylinux1_x86_64'), ('cp36', 'cp36m', 'linux_x86_64'), ('cp36', 'abi3', 'manylinux1_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'manylinux1_x86_64'), ('cp36', 'none', 'linux_x86_64'), ('cp35', 'abi3', 'manylinux1_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')] 

出力されたバージョンと合致する.whlファイルをダウンロードし直すと、以下のようにインストールが成功する。

実行例

[root@myhost ]#  pip3.6 install --no-deps numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl
Processing ./numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.19.5
You are using pip version 18.1, however version 21.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-IT系ノウハウ, Linux, Python
-,