Closed dyllanwli closed 2 years ago
Have the same problem under Mac m1! Here is my test code:
from ale_py import ALEInterface, SDL_SUPPORT
ale = ALEInterface()
ale.setInt("random_seed", 123)
if SDL_SUPPORT:
ale.setBool("sound", True)
ale.setBool("display_screen", True)
from ale_py.roms import Breakout
ale.loadROM(Breakout) # <-- RuntimeError: Failed to initialize SDL
@dyllanwli what platform are you running on? Arm as well?
Same issue on my Mac M1 chip as well and everything works well on my Mac with intel chip.
Hmm, okay, would someone be willing to test some custom wheels I'll upload to https://test.pypi.org/? I don't have access to an M1 machine and I have no way of testing this. I blindly decided to build the ARM wheels for macOS but I guess there are some issues after all 😞 .
I had the same issue with M1 but solved the issue by replacing the "libSDL2-2.0.dylib" in the site package from ale-py with another one. I replaced it with the "libSDL2-2.0.0.dylib" (Notice: slightly different name needs to be changed) from the site-package pygame. However the problem did not occur on all ARM machines, for example on Jetson AGX Developer Kit, which runs ARM Ubuntu 18.04.
Hmm, okay, would someone be willing to test some custom wheels I'll upload to https://test.pypi.org/? I don't have access to an M1 machine and I have no way of testing this. I blindly decided to build the ARM wheels for macOS but I guess there are some issues after all 😞 .
I could test it. I have an M1 Pro (MacBook Pro 16")
@turboka11e that's very unusual. So you're saying that renaming the file libSDL2-2.0.dylib
to libSDL2-2.0.0.dylib
inside of the ALE's site-packages folder fixed this issue? When we build the Python wheels we specifically give the filename of the dynamic library before we copy it (https://github.com/mgbellemare/Arcade-Learning-Environment/blob/master/src/python/CMakeLists.txt#L65). I can't imagine why there would be this mismatch.
I'll put together a test wheel that has extra debugging info so we can get to the bottom of this. I'll update this post once I've published it to PyPi test.
@JesseFarebro Sorry, that's not what I've meant. I was replacing the original libSDL2-2.0.dylib from another package pygame, as a hotfix to get it working. But they would name it slightly different, hence that's why I needed to change the name. So the problem is not a matching error, but must be something else. Alright perfect, I'll wait for the update. 👍🏼
@turboka11e can you try this build: https://test.pypi.org/project/ale-py/0.7.5/.
pip install -i https://test.pypi.org/simple/ ale-py==0.7.5
@JesseFarebro I created a new python test venv and tried the build, but unfortunately it has a error.
(test-venv) lukaskaluscha@Lukass-MBP-2 test % pip --version
pip 22.0.4 from /Users/lukaskaluscha/Desktop/test/test-venv/lib/python3.9/site-packages/pip (python 3.9)
(test-venv) lukaskaluscha@Lukass-MBP-2 test % pip install -i https://test.pypi.org/simple/ ale-py==0.7.5
Looking in indexes: https://test.pypi.org/simple/
Collecting ale-py==0.7.5
Downloading https://test-files.pythonhosted.org/packages/53/7e/858fc1bc12d293648539d308b3a4fedea07b54fd410c9475db5fc46eec2a/ale_py-0.7.5%2Bf3e60d1-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 2.0 MB/s eta 0:00:00
Discarding https://test-files.pythonhosted.org/packages/53/7e/858fc1bc12d293648539d308b3a4fedea07b54fd410c9475db5fc46eec2a/ale_py-0.7.5%2Bf3e60d1-cp39-cp39-macosx_11_0_arm64.whl#sha256=745ee6c7c79cf6ef94b774bae2359f492ba086b9776f63fcbaec5e2d26957fbd (from https://test.pypi.org/simple/ale-py/) (requires-python:>=3.7): Requested ale-py==0.7.5 from https://test-files.pythonhosted.org/packages/53/7e/858fc1bc12d293648539d308b3a4fedea07b54fd410c9475db5fc46eec2a/ale_py-0.7.5%2Bf3e60d1-cp39-cp39-macosx_11_0_arm64.whl#sha256=745ee6c7c79cf6ef94b774bae2359f492ba086b9776f63fcbaec5e2d26957fbd has inconsistent version: filename has '0.7.5+f3e60d1', but metadata has '0.7.5'
Downloading https://test-files.pythonhosted.org/packages/1f/1b/4694238733bc7609fceffe68d1df190d1a5464e888799c93ebe280b34c7b/ale_py-0.7.5%2Bdb37282-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 2.1 MB/s eta 0:00:00
Discarding https://test-files.pythonhosted.org/packages/1f/1b/4694238733bc7609fceffe68d1df190d1a5464e888799c93ebe280b34c7b/ale_py-0.7.5%2Bdb37282-cp39-cp39-macosx_11_0_arm64.whl#sha256=da5be311285a00e587b886805ea56762d44bf4f1da672229c1fbaff209bfcdc2 (from https://test.pypi.org/simple/ale-py/) (requires-python:>=3.7): Requested ale-py==0.7.5 from https://test-files.pythonhosted.org/packages/1f/1b/4694238733bc7609fceffe68d1df190d1a5464e888799c93ebe280b34c7b/ale_py-0.7.5%2Bdb37282-cp39-cp39-macosx_11_0_arm64.whl#sha256=da5be311285a00e587b886805ea56762d44bf4f1da672229c1fbaff209bfcdc2 has inconsistent version: filename has '0.7.5+db37282', but metadata has '0.7.5'
Downloading https://test-files.pythonhosted.org/packages/e0/43/d46a3a01188af749695dce015b90e8e8d5c9f8bba1a9eea891d33de5d363/ale_py-0.7.5%2Bbfdd2b6-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 1.8 MB/s eta 0:00:00
Discarding https://test-files.pythonhosted.org/packages/e0/43/d46a3a01188af749695dce015b90e8e8d5c9f8bba1a9eea891d33de5d363/ale_py-0.7.5%2Bbfdd2b6-cp39-cp39-macosx_11_0_arm64.whl#sha256=6090f588f39e76f2a1b127469c3c0c86b5020117568b0ad3ea30b361eb39f37b (from https://test.pypi.org/simple/ale-py/) (requires-python:>=3.7): Requested ale-py==0.7.5 from https://test-files.pythonhosted.org/packages/e0/43/d46a3a01188af749695dce015b90e8e8d5c9f8bba1a9eea891d33de5d363/ale_py-0.7.5%2Bbfdd2b6-cp39-cp39-macosx_11_0_arm64.whl#sha256=6090f588f39e76f2a1b127469c3c0c86b5020117568b0ad3ea30b361eb39f37b has inconsistent version: filename has '0.7.5+bfdd2b6', but metadata has '0.7.5'
Downloading https://test-files.pythonhosted.org/packages/35/98/31c82bbfa32ff53c084b044b5693f3fdff524e47220b5641487aebaff4cd/ale_py-0.7.5%2B7e27732-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 1.8 MB/s eta 0:00:00
Discarding https://test-files.pythonhosted.org/packages/35/98/31c82bbfa32ff53c084b044b5693f3fdff524e47220b5641487aebaff4cd/ale_py-0.7.5%2B7e27732-cp39-cp39-macosx_11_0_arm64.whl#sha256=4dcc67787a107bd4d5b0bea9e6ac64309c87ff8d06967fc9aacb8f7a6b5557b0 (from https://test.pypi.org/simple/ale-py/) (requires-python:>=3.7): Requested ale-py==0.7.5 from https://test-files.pythonhosted.org/packages/35/98/31c82bbfa32ff53c084b044b5693f3fdff524e47220b5641487aebaff4cd/ale_py-0.7.5%2B7e27732-cp39-cp39-macosx_11_0_arm64.whl#sha256=4dcc67787a107bd4d5b0bea9e6ac64309c87ff8d06967fc9aacb8f7a6b5557b0 has inconsistent version: filename has '0.7.5+7e27732', but metadata has '0.7.5'
Downloading https://test-files.pythonhosted.org/packages/a7/a7/385a92da541b2f536c32403cbce3769f8eedc429dab2acb0a4c5253df958/ale_py-0.7.5%2B30f56cf-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 1.5 MB/s eta 0:00:00
Discarding https://test-files.pythonhosted.org/packages/a7/a7/385a92da541b2f536c32403cbce3769f8eedc429dab2acb0a4c5253df958/ale_py-0.7.5%2B30f56cf-cp39-cp39-macosx_11_0_arm64.whl#sha256=ed6e8c6810b0a2baae8a41be0e59ea98c33d5cadd46d111be5200006036ce647 (from https://test.pypi.org/simple/ale-py/) (requires-python:>=3.7): Requested ale-py==0.7.5 from https://test-files.pythonhosted.org/packages/a7/a7/385a92da541b2f536c32403cbce3769f8eedc429dab2acb0a4c5253df958/ale_py-0.7.5%2B30f56cf-cp39-cp39-macosx_11_0_arm64.whl#sha256=ed6e8c6810b0a2baae8a41be0e59ea98c33d5cadd46d111be5200006036ce647 has inconsistent version: filename has '0.7.5+30f56cf', but metadata has '0.7.5'
ERROR: Could not find a version that satisfies the requirement ale-py==0.7.5 (from versions: 0.7rc4+5b4e75e, 0.7+6d3b8ab, 0.7+80025fd, 0.7+a54a328, 0.7+d213611, 0.7.1rc0+dd9a841, 0.7.1+b7b0c1a, 0.7.1+dd9a841, 0.7.2+a7a216c, 0.7.3+978d2ce, 0.7.4+069f8bd, 0.7.4+286bdea, 0.7.4+3e89471, 0.7.4+480d996, 0.7.4+732fbdc, 0.7.4+fe6e0d9, 0.7.5+30f56cf, 0.7.5+7e27732, 0.7.5+bfdd2b6, 0.7.5+db37282, 0.7.5+f3e60d1)
ERROR: No matching distribution found for ale-py==0.7.5
Sorry about that, you can now download 0.7.5 from the main PyPi repository. Let me know if that fixes this problem! Thanks for helping test this out 😄.
Hurray - it works!
My script to test it:
import gym
env = gym.make('ALE/Breakout-v5', render_mode='human')
env.reset()
for _ in range(1000):
env.step(env.action_space.sample())
env.close()
Added ROMS and installed gym 0.23.1.
Thanks a lot :) @JesseFarebro
[Environments]:
[Reproduce]:
Then I got runtime error:
I was trying to add human render mode to my research to use
env.render()