結論
サンプルコード
python -m pip install --no-index pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl pytz-2023.3.post1-py2.py3-none-any.whl numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl python_dateutil-2.8.2-py2.py3-none-any.whl six-1.16.0-py2.py3-none-any.whl
WSLの Ubuntu 18.04 LTS (bionic) には、上記で入りました。
ダウンロード
PyPI (Python Package Index)は、pip する際の参照先でパッケージを配布している所らしいです。
whl というファイルが pip でのパッケージファイルのようです。
pandas のwhlを検索してダウンロードしておきます。また、インストールしようとすると依存関係でエラーが出るので、必要なパッケージを都度DLする。
pandas-1.1.5のあたりでは pytz, numpy, python_dateutil, six が依存関係のようなので、それぞれDLしました。
大きめのライブラリはプラットフォーム依存となっていて、後述のように、選択肢が複数ある事に注意し、プラットフォームにあった物をDLする。
エラー例1
[file name].whl is not a supported wheel on this platform.
このようなエラーが出た場合は、そのファイルが対応しているプラットフォーム用ではない。
$ python
>>> from pip._internal.pep425tags import get_supported
>>> get_supported()
上記で、対応している物がリストアップされます。
ちなみに概ねPythonバージョンと一致するようです。
- cp36: Python 3.6
- cp311: Python 3.11
あとは、マシンのプラットフォームで一致するものを選でDLする。
- musllinux: muslというライブラリが使える場合のLinux?
- manylinux1: ほとんどのLinux
- manulinux2010: 上記同様だが 1 と 2010 の違いはよく分からない。カーネルバージョンに関係?
- win_amd64: x86系 64bit CPU / OS
- win32: x86系 32bit CPU / OS
- aarch64: ARM64系
- i686: Pentium III 時代のCPU?
- x86_64: x86 / x64系 (32bit, 64bit OS共通?)
- macosx: mac OS (Mac OS X)
など。
WSLの Ubuntu 18.04 の 場合、cp36, manylinux1, x86_64 の物で行けました。
なお古いバージョンは「リリース履歴」のリンクから辿ったあと、メニューからDLページに行けました。
エラー例2
Could not find a version that satisfies the requirement pytz>=2017.2 (from pandas==1.1.5) (from versions: )
No matching distribution found for pytz>=2017.2 (from pandas==1.1.5)
以下のように順次入れようとすると、2,3個目あたりからこのエラーで躓く。
一見、依存関係をクリアしているように見えるが、
--no-index
を使ってオフラインインストールする場合、インストール済みの依存関係も見に行かなくなるようなので、ページ最初のコードのように、依存関係のあるパッケージを全て1ラインで列挙する必要がある。
# これは途中でエラーになります。
python -m pip install --no-index six-1.16.0-py2.py3-none-any.whl
python -m pip install --no-index python_dateutil-2.8.2-py2.py3-none-any.whl
python -m pip install --no-index numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl
python -m pip install --no-index pytz-2023.3.post1-py2.py3-none-any.whl
python -m pip install --no-index pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl
参考にさせて頂いたサイト