无法在Windows上安装gym[box2d]

问题描述 投票:0回答:0

我在 Windows 上安装gym[box2d] 时遇到问题。我有 SWIG 版本 4.0.2、Python 版本 3.11.4、VSCode 版本 1.81、Conda 版本 23.7.2、pip 版本 23.1.2、gym 版本 0.26.2、Visual C++ 编译器版本 19.36.32537。我尝试遵循其他线程的建议,但没有任何效果。有人有想法吗?

这是我迄今为止尝试过的方法,以及导致的错误消息:

  • 尝试时
    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
    ,然后
    conda activate gymenv
    ,然后
    pip install Box2D gym
    ,然后
    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
    内运行我的代码(取决于Box2D)时,这就是我得到的结果(它说“pygame未安装,运行
    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]`

我已经尝试了在其他线程上找到的所有建议,但都没有解决我的问题。下一步是安装 Linux 虚拟机并在那里完成所有操作吗?我真的很想克服这个问题,这样我就可以继续我的 Actor-Critic 方法课程......

非常感谢。

visual-c++ conda box2d reinforcement-learning openai-gym
© www.soinside.com 2019 - 2024. All rights reserved.