Evolution Gym
は h5py-3.6.0
を requirements.txt
に含めている。まず、このバージョンを pip
でインストールできるかを確認する事にした。 h5py-3.6.0
では以下のwhl形式が提供されている。
- h5py-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl
- h5py-3.6.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- h5py-3.6.0-cp310-cp310-win_amd64.whl
- h5py-3.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
- h5py-3.6.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- h5py-3.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- h5py-3.6.0-cp37-cp37m-win_amd64.whl
- h5py-3.6.0-cp38-cp38-macosx_10_9_x86_64.whl
- h5py-3.6.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- h5py-3.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- h5py-3.6.0-cp38-cp38-win_amd64.whl
- h5py-3.6.0-cp39-cp39-macosx_10_9_x86_64.whl
- h5py-3.6.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- h5py-3.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- h5py-3.6.0-cp39-cp39-win_amd64.whl
インストールする環境がこの範囲に含まれていれば、whlを使ってインストールされる。
whlを用いてインストールされた。以降の確認のため一度アンインストールする。
先ほど一覧でしめしたwhlの対応する環境に当てはまらなければ、tarballをダウンロードしビルドされる事になる。例えばM1のmacOSを使っている場合には、ビルドが行われる。whlを使用したくない場合は pip install
のオプションとして --no-binary\=h5py
を指定する。
from ~ cimport class ~
構文が使用できなかったり、インポートする対象が存在しなかったりと、よく分からない状態になっていた。ログを見るとCythonのバージョンが正しくないといった出力もある。
構文の問題については、Cython-3.0.0のあたりで修正されたもののようだった。
issue(https://github.com/cython/cython/pull/4904)もある。tarballの中身を確認すると、確かに pyproject.toml
には Cython-0.29.14
を要求する記述があった。
そこで幾つかの Cython
のバージョンを確認する事にした。要求されていないものについても、もしかしたらと思い確認したが、結果としては全て同じエラーになった。
cython-3.0.4
cython-0.29.14
cython-0.29.13
cython-0.29
cython-0.28
whl
として存在している h5py
はどのようにビルドされたのか、結局よく分からなかった。ただ、これ以上は深追いせず、 h5py==3.6.0
のソースコードからのビルドを諦める事にした。本当にやりたい事は「 Evolution Gym
を使いたい」だけであって、 h5py==3.6.0
をソースコードからビルドしたい訳ではないからだった。