Pythonでwhlファイルインストールのためのcpバージョン確認(Win10 pip ver. 21.1.1)

Pythonでgmpy2のwhlファイルをインストールしようとしたときに、エラーが出て苦戦したので記録しておきます


環境

windows 10

Python 3.8.2

・pip 21.1.1

 

whlファイルインストール時のエラー

https://www.lfd.uci.edu/~gohlke/pythonlibs/ からgmpy2をダウンロードしようとしたときに適当なファイルを選ぶと失敗します。

> pip install gmpy2-2.0.8-cp39-cp39-win_amd64.whl
ERROR: gmpy2-2.0.8-cp39-cp39-win_amd64.whl is not a supported wheel on this platform.

ここではwhlファイルのバージョンとこのコンピュータのpipがサポートしているバージョンが違うのでエラーになってしまいました。

cpバージョンを確認する必要がありますね!

cpバージョンの確認方法

多くの記事では以下のように書いてありますが、これはver.10のときのものなのでこれを実行するとエラーになってしまいます。

> python
>>> from pip._internal.pep425tags import get_supported
>>> get_supported()
ModuleNotFoundError: No module named 'pip._internal.pep425tags'

今回はver.21に対応した方法をやっていきましょう!他の記事でget_supported()の関数があるファイルを発見してくれた方がいるのでこの関数を実行するために少し変えましょう。

そこでPythonがインストールされているフォルダの中身を確認し、このモジュールが存在しているかどうか調査した。調査の結果、「\Python\Python38-32\Lib\site-packages\pip\_internal」のディレクトリ内に「pep425tags.py」というファイルが存在していない。よくよく見てみると、上記の情報は「pip 10.0.1」の環境での情報であった。私の環境は「pip 20.1」である。

原因が分かったので「get_supported()」という関数が含まれるファイルがどこにあるのか調査した。その結果「\Python\Python38-32\Lib\site-packages\pip\_internal\utils」のディレクトリ内に「compatibility_tags.py」のファイルが存在し、このファイル内に関数「get_supported()」が存在することが分かった。
https://note.com/tomtom_0301/n/na8fedf6f87ee#bzcmm

>>> from pip._internal.utils.compatibility_tags import get_supported
>>> get_supported()
[<cp38-cp38-win32 @~>, ......]  // 自分はこんな感じでした
>>> quit()

するとcp38-cp-38-win32などたくさんのサポートされているバージョンが出てくるので、その中からwhlファイルと対応するものをダウンロードしましょう。

(おまけ)whlファイルのインストール方法

先ほどのURL(https://www.lfd.uci.edu/~gohlke/pythonlibs/)からcp38-cp-38-win32と書いてあるものをダウンロードし、whlファイルのディレクトリまで移動してターミナルで一番最初のコマンドを入力しましょう!

> pip install gmpy2-2.0.8-cp38-cp38-win32.whl
Processing c:\users\***\gmpy2-2.0.8-cp38-cp38-win32.whl

結果このようにインストールすることができました!
おしまい!Thank you!!
N3onG