Open MrCley opened 9 months ago
Can you give the full stack trace? We have testing in our CI for both linux/mac and python 3.8-3.11 which successfully installs the ROMs and tests them, Iβll check what versions are installed there though just to be sure
Oh what it might be is that we donβt explicitly test on M1 macs currently, but I believe that is now possible in GitHub actions so I could test it out
@elliottower that was fast! π I've added the stack trace to the issue description. Thanks for looking into it!
The tests all passed on the different Mac versions (11, 12, and 13 with m1) so I think it must be something on your end
Could you rerun pip install "gymnasium[accept-atari-roms]"
then run
import gymnasium
gymnasium.make("ALE/Pong-v5")
Could you rerun
pip install "gymnasium[accept-atari-roms]"
then runimport gymnasium gymnasium.make("ALE/Pong-v5")
if I install the gymnasium rom license (pip install 'gymnasium[accept-rom-license]'), and try the make() method, it does create the env.
But using the _tennisv3.env() provided in the docs, it still gives the error provided in the description above.
@elliottower It seems like ale-py is doing something different from PettingZoo when finding the rom which is part of the issue
Adding on, a good place to start debugging this is probably here. I can start looking into this later.
@MrCley I've looked into this and for some reason I cannot replicate this. Is this still happening on your end?
Hi @jjshoots, yes it still happens :(
I've made another project (also Python 3.11), cloned the repo and ran the tests (pip install -e .[testing,all]
then pytest -v
), they pass except the Atari ones, which fail because of the missing ROM.
@MrCley I assume you've done AutoROM -v
?
yes, I ran the tests both before and after running AutoROM -v
and got the same results
@MrCley I assume you're using some form of virtual env? If so, could you print out the contents of */lib/python3.10/site-packages/multi_agent_ale_py/roms
? It should match the following:
ο
adventure.bin ο
fishing_derby.bin ο
pitfall.bin
ο
air_raid.bin ο
flag_capture.bin ο
pitfall2.bin
ο
alien.bin ο
freeway.bin ο
pong.bin
ο
amidar.bin ο
frogger.bin ο
pooyan.bin
ο
assault.bin ο
frostbite.bin ο
private_eye.bin
ο
asterix.bin ο
galaxian.bin ο
qbert.bin
ο
asteroids.bin ο
gopher.bin ο
riverraid.bin
ο
atlantis.bin ο
gravitar.bin ο
road_runner.bin
ο
atlantis2.bin ο
hangman.bin ο
robotank.bin
ο
backgammon.bin ο
haunted_house.bin ο
seaquest.bin
ο
bank_heist.bin ο
hero.bin ο
sir_lancelot.bin
ο
basic_math.bin ο
human_cannonball.bin ο
skiing.bin
ο
battle_zone.bin ο
ice_hockey.bin ο
solaris.bin
ο
beam_rider.bin ο
jamesbond.bin ο
space_invaders.bin
ο
berzerk.bin ο
journey_escape.bin ο
space_war.bin
ο
blackjack.bin ο
joust.bin ο
star_gunner.bin
ο
bowling.bin ο
kaboom.bin ο
superman.bin
ο
boxing.bin ο
kangaroo.bin ο
surround.bin
ο
breakout.bin ο
keystone_kapers.bin ο
tennis.bin
ο
carnival.bin ο
king_kong.bin ο
tetris.bin
ο
casino.bin ο
klax.bin ο
tic_tac_toe_3d.bin
ο
centipede.bin ο
koolaid.bin ο
time_pilot.bin
ο
chopper_command.bin ο
krull.bin ο
trondead.bin
ο
combat.bin ο
kung_fu_master.bin ο
turmoil.bin
ο
crazy_climber.bin ο
laser_gates.bin ο
tutankham.bin
ο
crossbow.bin ο
lost_luggage.bin ο
up_n_down.bin
ο
darkchambers.bin ο
mario_bros.bin ο
venture.bin
ο
defender.bin ο
maze_craze.bin ο
video_checkers.bin
ο
demon_attack.bin ο
miniature_golf.bin ο
video_chess.bin
ο
donkey_kong.bin ο
montezuma_revenge.bin ο
video_cube.bin
ο
double_dunk.bin ο
mr_do.bin ο
video_pinball.bin
ο
earthworld.bin ο
ms_pacman.bin ο
warlords.bin
ο
elevator_action.bin ο
name_this_game.bin ο
wizard_of_wor.bin
ο
enduro.bin ο
othello.bin ο
word_zapper.bin
ο
entombed.bin ο
pacman.bin ο
yars_revenge.bin
ο
et.bin ο
phoenix.bin ο
zaxxon.bin
hey @jjshoots, just checked and there is no roms folder in there:
@MrCley Apologies for the repeated slow responses.
That does not look good... Could you open up a Python interpreter within the venv, and run the following and send the output here?
import importlib.resources as r
r.files("multi_agent_ale_py")
r.files("AutoROM")
Also, could you verify that multi_agent_ale_py
is not accidentally installed into the global python environment and only exists in the venv?
Describe the bug
When trying to run the Atari examples in the docs, the same error is shown (for all games):
It says that the rom is not installed and suggests installing AutoROM, which is already installed (pip list below).
Full stack trace:
Traceback (most recent call last): File "/Users/mrcley/Documents/py/marl_atari/src/train.py", line 3, in
env = tennis_v3.env(render_mode="human")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mrcley/Documents/py/marl_atari/env/lib/python3.11/site-packages/pettingzoo/atari/base_atari_env.py", line 25, in env_fn
env = raw_env_fn(kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/Users/mrcley/Documents/py/marl_atari/env/lib/python3.11/site-packages/pettingzoo/atari/tennis/tennis.py", line 91, in raw_env
return BaseAtariEnv(
^^^^^^^^^^^^^
File "/Users/mrcley/Documents/py/marl_atari/env/lib/python3.11/site-packages/pettingzoo/atari/base_atari_env.py", line 34, in BaseAtariEnv
return parallel_to_aec_wrapper(ParallelAtariEnv(kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mrcley/Documents/py/marl_atari/env/lib/python3.11/site-packages/pettingzoo/atari/base_atari_env.py", line 109, in init
raise OSError(
OSError: rom tennis is not installed. Please install roms using AutoROM tool (https://github.com/Farama-Foundation/AutoROM) or specify and double-check the path to your Atari rom using the
rom_path
argument.Thanks!
Code example
System info
M1 macOs Ventura 13.0.1 Python 3.11.6 pip list:
ale-py==0.8.1 AutoROM==0.6.1 AutoROM.accept-rom-license==0.6.1 certifi==2023.11.17 charset-normalizer==3.3.2 click==8.1.7 cloudpickle==3.0.0 Farama-Notifications==0.0.4 gymnasium==0.29.1 idna==3.6 importlib-resources==6.1.1 multi-agent-ale-py==0.1.11 numpy==1.26.3 pettingzoo==1.24.3 pygame==2.3.0 requests==2.31.0 Shimmy==0.2.1 tqdm==4.66.1 typing_extensions==4.9.0 urllib3==2.1.0
Additional context
AutoROM works fine in another project (same Python version) that is not using PettingZoo but is also using Gymnasium 0.29.1.
Checklist