Reputation: 11
I'm having trouble installing gym[box2d] on Windows. I have SWIG version 4.0.2, Python version 3.11.4, VSCode version 1.81, Conda version 23.7.2, pip version 23.1.2, gym version 0.26.2, Visual C++ compiler version 19.36.32537. I've tried following advices from other threads but none worked. Does anyone have an idea?
Here's what I've tried so far, and the error messages that resulted:
pip install gym[box2d]
:Requirement already satisfied: gym[box2d] in c:\users\user\miniconda3\lib\site-packages (0.26.2)
Requirement already satisfied: numpy>=1.18.0 in c:\users\user\miniconda3\lib\site-packages (from gym[box2d]) (1.25.2)
Requirement already satisfied: cloudpickle>=1.2.0 in c:\users\user\miniconda3\lib\site-packages (from gym[box2d]) (2.2.1)
Requirement already satisfied: gym-notices>=0.0.4 in c:\users\user\miniconda3\lib\site-packages (from gym[box2d]) (0.0.8)
Collecting box2d-py==2.3.5 (from gym[box2d])
Using cached box2d-py-2.3.5.tar.gz (374 kB)
Preparing metadata (setup.py) ... done
Collecting pygame==2.1.0 (from gym[box2d])
Using cached pygame-2.1.0.tar.gz (5.8 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [77 lines of output]
WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
Using WINDOWS configuration...
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\setup.py", line 388, in <module>
buildconfig.config.main(AUTO_CONFIG)
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\buildconfig\config.py", line 234, in main
deps = CFG.main(**kwds)
^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\buildconfig\config_win.py", line 511, in main
return setup_prebuilt_sdl2(prebuilt_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\buildconfig\config_win.py", line 471, in setup_prebuilt_sdl2
DEPS.configure()
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\buildconfig\config_win.py", line 336, in configure
from . import vstools
File "C:\Users\user\AppData\Local\Temp\pip-install-4zzeib5u\pygame_d5d88c36f7d24fe48f5231f3f0ba68ee\buildconfig\vstools.py", line 11, in <module>
compiler.initialize()
File "C:\Users\user\miniconda3\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 403, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\miniconda3\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 281, in query_vcvarsall
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat
Making dir :prebuilt_downloads:
......
Path for SDL: prebuilt-x64\SDL2-2.0.16
...Library directory for SDL: prebuilt-x64/SDL2-2.0.16/lib/x64
...Include directory for SDL: prebuilt-x64/SDL2-2.0.16/include
Path for FONT: prebuilt-x64\SDL2_ttf-2.0.15
...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64
...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/include
Path for IMAGE: prebuilt-x64\SDL2_image-2.0.5
...Library directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/lib/x64
...Include directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/include
Path for MIXER: prebuilt-x64\SDL2_mixer-2.0.4
...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64
...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/include
Path for PORTMIDI: prebuilt-x64
...Library directory for PORTMIDI: prebuilt-x64/lib
...Include directory for PORTMIDI: prebuilt-x64/include
DLL for SDL2: prebuilt-x64/SDL2-2.0.16/lib/x64/SDL2.dll
DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/SDL2_ttf.dll
DLL for SDL2_image: prebuilt-x64/SDL2_image-2.0.5/lib/x64/SDL2_image.dll
DLL for SDL2_mixer: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64/SDL2_mixer.dll
DLL for portmidi: prebuilt-x64/lib/portmidi.dll
Path for FREETYPE not found.
...Found include dir but no library dir in prebuilt-x64.
Path for PNG not found.
...Found include dir but no library dir in prebuilt-x64.
Path for JPEG not found.
...Found include dir but no library dir in prebuilt-x64.
DLL for freetype: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/libfreetype-6.dll
---
For help with compilation see:
.......
---
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
conda create -c conda-forge -n gymenv swig pip
and then conda activate gymenv
and then pip install Box2D gym
and then pip install gym[box2d]
:Requirement already satisfied: gym[box2d] in c:\users\user\miniconda3\envs\gymenv\lib\site-packages (0.26.2)
Requirement already satisfied: numpy>=1.18.0 in c:\users\user\miniconda3\envs\gymenv\lib\site-packages (from gym[box2d]) (1.25.2)
Requirement already satisfied: cloudpickle>=1.2.0 in c:\users\user\miniconda3\envs\gymenv\lib\site-packages (from gym[box2d]) (2.2.1)
Requirement already satisfied: gym-notices>=0.0.4 in c:\users\user\miniconda3\envs\gymenv\lib\site-packages (from gym[box2d]) (0.0.8)
Collecting box2d-py==2.3.5 (from gym[box2d])
Using cached box2d-py-2.3.5.tar.gz (374 kB)
Preparing metadata (setup.py) ... done
Collecting pygame==2.1.0 (from gym[box2d])
Using cached pygame-2.1.0.tar.gz (5.8 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [77 lines of output]
WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
Using WINDOWS configuration...
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\setup.py", line 388, in <module>
buildconfig.config.main(AUTO_CONFIG)
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\buildconfig\config.py", line 234, in main
deps = CFG.main(**kwds)
^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\buildconfig\config_win.py", line 511, in main
return setup_prebuilt_sdl2(prebuilt_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\buildconfig\config_win.py", line 471, in setup_prebuilt_sdl2
DEPS.configure()
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\buildconfig\config_win.py", line 336, in configure
from . import vstools
File "C:\Users\user\AppData\Local\Temp\pip-install-3fq2c1be\pygame_553078f1630748c69e33fe616ff4d37e\buildconfig\vstools.py", line 11, in <module>
compiler.initialize()
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 403, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 281, in query_vcvarsall
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat
Making dir :prebuilt_downloads:
..............
Unzipping :prebuilt_downloads\prebuilt-x64-pygame-1.9.2-20150922.zip:
copying into .\prebuilt-x64
Path for SDL: prebuilt-x64\SDL2-2.0.16
...Library directory for SDL: prebuilt-x64/SDL2-2.0.16/lib/x64
...Include directory for SDL: prebuilt-x64/SDL2-2.0.16/include
Path for FONT: prebuilt-x64\SDL2_ttf-2.0.15
...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64
...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/include
Path for IMAGE: prebuilt-x64\SDL2_image-2.0.5
...Library directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/lib/x64
...Include directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/include
Path for MIXER: prebuilt-x64\SDL2_mixer-2.0.4
...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64
...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/include
Path for PORTMIDI: prebuilt-x64
...Library directory for PORTMIDI: prebuilt-x64/lib
...Include directory for PORTMIDI: prebuilt-x64/include
DLL for SDL2: prebuilt-x64/SDL2-2.0.16/lib/x64/SDL2.dll
DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/SDL2_ttf.dll
DLL for SDL2_image: prebuilt-x64/SDL2_image-2.0.5/lib/x64/SDL2_image.dll
DLL for SDL2_mixer: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64/SDL2_mixer.dll
DLL for portmidi: prebuilt-x64/lib/portmidi.dll
Path for FREETYPE not found.
...Found include dir but no library dir in prebuilt-x64.
Path for PNG not found.
...Found include dir but no library dir in prebuilt-x64.
Path for JPEG not found.
...Found include dir but no library dir in prebuilt-x64.
DLL for freetype: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/libfreetype-6.dll
---
For help with compilation see:
https://www.pygame.org/wiki/CompileWindows
To contribute to pygame development see:
https://www.pygame.org/contribute.html
---
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
gymenv
, here's what I get (it says "pygame is not installed, run pip install gym[box2d]
"):Traceback (most recent call last):
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\gym\envs\box2d\car_racing.py", line 23, in <module>
import pygame
ModuleNotFoundError: No module named 'pygame'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\user\Desktop\UDEMY\Lunar Lander - Random\lunar_lander_random.py", line 4, in <module>
env = gym.make('LunarLander-v2')
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\gym\envs\registration.py", line 581, in make
env_creator = load(spec_.entry_point)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\gym\envs\registration.py", line 61, in load
mod = importlib.import_module(mod_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\miniconda3\envs\gymenv\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\gym\envs\box2d\__init__.py", line 2, in <module>
from gym.envs.box2d.car_racing import CarRacing
File "C:\Users\user\miniconda3\envs\gymenv\Lib\site-packages\gym\envs\box2d\car_racing.py", line 26, in <module>
raise DependencyNotInstalled(
gym.error.DependencyNotInstalled: pygame is not installed, run `pip install gym[box2d]`
I've tried every advice I could find on other threads but none solved my problem. Is the path forward installing a Linux virtual machine and doing everything there? I would really like to get over this problem so I can continue my course on Actor-Critic methods...
Thank you very much.
Upvotes: 1
Views: 747
Reputation: 1
I too had problems with the installation on Windows. I solved them by installing "Visual Studio Installer" and the following tools:
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
"Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Component.CoreBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Component.Windows10SDK",
"Microsoft.VisualStudio.Component.VC.CoreBuildTools",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Component.VC.CMake.Project",
"Microsoft.VisualStudio.Component.TestTools.BuildTools",
"Microsoft.VisualStudio.Component.VC.ASAN",
"Microsoft.VisualStudio.Component.TextTemplating",
"Microsoft.VisualStudio.Component.VC.CoreIde",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
"Microsoft.VisualStudio.Workload.VCTools"
],
"extensions": []
}
I remember, but I could be wrong, that SWIG is downloaded automatically from GYM.
Upvotes: 0