🐍

【OpenAI Gym】 No module named atari_py.import_roms

2021/09/01に公開

0. はじめに

友人が開発している強化学習ライブラリ tf2rl で利用している GitHub Actions 上の CI で遭遇したトラブルです。
この記事は自ブログにポストした英語記事の日本語焼き直し記事です。

1. 遭遇したトラブル

OpenAI Gym で atari の ROM をインストールしようとしたところ、 No module named atari_py.import_roms のエラーが発生しました。

pip install gym[atari]
wget http://www.atarimania.com/roms/Roms.rar
7z x Roms.rar && unzip ROMS.zip
python -m atari_py.import_roms ROMS

2. 原因

調べてみたところ、 gym[atari] が、 atari-py の 0.2.6 を要求しているのですが、そのバージョンは、PyPI上で yank [1] されていました。

https://github.com/openai/gym/blob/a00455844536b80bef6c3ef444a5e44e59213019/setup.py#L12

https://pypi.org/project/atari-py/0.2.6/

また、 atari-py 0.2.6 は良くないとの報告もありました。
https://github.com/google/dopamine/issues/24#issuecomment-594355868

3. 個人の暫定対策

手動で atari-py を 新しいバージョン (今回は、0.2.9) にアップグレードしたところ、ROMのインストールに成功しました。

pip install -U atari-py

4. 恒久的な対策

OpenAI Gymのレポジトリにも報告しておきました。
https://github.com/openai/gym/issues/2379

依存ライブラリのバージョンを引き上げるだけであれば、PRもありかなとも思いましたが、他の部分への影響がわからなかったので、まずはissueのみとしました。

追記: 2020/9/2

なんとタイミングが良い (悪い?) ことに、atari-py を The Arcade Learning Environment (ale-py) に置き換えるPRがレビュー中だったようです。メンテナいわく数日内に置き換えるといっているので、すぐに解決されそうです。
https://github.com/openai/gym/pull/2348

(issue 建てる前に、issue リストは検索をしたのですが、PRに紐付いた issue はなく見つけそこなていました。)

追記: 2022/4/12

Gym の各バージョンにおける対処法を以下のスクラップにまとめました。
https://zenn.dev/link/comments/4ebf81600b9480

脚注
  1. PyPI上で yank されると、明示的にバージョン指定されないと利用されなくなります。参考 ↩︎

Discussion