如何正确安装gym==0.21.0

在尝试安装gym版本0.21.0时,出现了metadata-generation-failed错误,原因是extras_require的值不正确。解决方案是先更新setuptools到65.5.0版本,然后以--user权限安装wheel到0.38.0版本。这个问题已在openai/gym的issue#3202中讨论。

安装gym==0.21.0遇到的问题

(gym21) C:\Users\chong>pip install gym==0.21.0
Collecting gym==0.21.0
  Using cached gym-0.21.0.tar.gz (1.5 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in gym setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.
      [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.

以及

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\chong\AppData\Local\Temp\pip-install-cc39m72i\gym_da868a760fcf49dbaa1378f21351382b\setup.py", line 39, in <module>
          setup(
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\_distutils\dist.py", line 968, in run_commands
          self.run_command(cmd)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\dist.py", line 1217, in run_command
          super().run_command(command)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\setuptools\_distutils\dist.py", line 987, in run_command
          cmd_obj.run()
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\bdist_wheel.py", line 395, in run
          self.egg2dist(self.egginfo_dir, distinfo_dir)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\bdist_wheel.py", line 534, in egg2dist
          pkg_info = pkginfo_to_metadata(egginfo_path, pkginfo_path)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\metadata.py", line 160, in pkginfo_to_metadata
          for key, value in generate_requirements({extra: reqs}):
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\metadata.py", line 138, in generate_requirements
          for new_req in convert_requirements(depends):
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\metadata.py", line 103, in convert_requirements
          parsed_requirement = Requirement(req)
        File "C:\ProgramData\Anaconda3\envs\gym21\lib\site-packages\wheel\vendored\packaging\requirements.py", line 37, in __init__
          raise InvalidRequirement(str(e)) from e
      wheel.vendored.packaging.requirements.InvalidRequirement: Expected end or semicolon (after version specifier)
          opencv-python>=3.
                       ~~~^
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for gym
  Running setup.py clean for gym
Failed to build gym
ERROR: Could not build wheels for gym, which is required to install pyproject.toml-based projects

主要是setuptools和wheel版本的问题

两步操作可以解决

pip install setuptools==65.5.0

pip install --user wheel==0.38.0

--user是因为没有权限

详情见:https://github.com/openai/gym/issues/3202#issuecomment-1513593788

(py37) C:\Users\wang\Desktop>pip install "gym[all]==0.21.0" Requirement already satisfied: gym[all]==0.21.0 in d:\anaconda\envs\py37\lib\site-packages (0.21.0) Requirement already satisfied: numpy>=1.18.0 in d:\anaconda\envs\py37\lib\site-packages (from gym[all]==0.21.0) (1.21.6) Requirement already satisfied: importlib-metadata>=4.8.1 in d:\anaconda\envs\py37\lib\site-packages (from gym[all]==0.21.0) (6.7.0) Requirement already satisfied: cloudpickle>=1.2.0 in d:\anaconda\envs\py37\lib\site-packages (from gym[all]==0.21.0) (2.2.1) Requirement already satisfied: mujoco-py<2.0,>=1.50 in d:\anaconda\envs\py37\lib\site-packages\mujoco_py-1.50.1.0-py3.7.egg (from gym[all]==0.21.0) (1.50.1.0) Collecting lz4>=3.1.0 Downloading lz4-4.3.2-cp37-cp37m-win_amd64.whl (99 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.9/99.9 kB 146.9 kB/s eta 0:00:00 Collecting box2d-py==2.3.5 Downloading box2d-py-2.3.5.tar.gz (374 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 374.4/374.4 kB 60.1 kB/s eta 0:00:00 Preparing metadata (setup.py) ... done Collecting ale-py~=0.7.1 Downloading ale_py-0.7.5-cp37-cp37m-win_amd64.whl (935 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 935.3/935.3 kB 44.9 kB/s eta 0:00:00 Collecting opencv-python>=3. Downloading opencv_python-4.11.0.86-cp37-abi3-win_amd64.whl (39.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 39.5/39.5 MB 73.5 kB/s eta 0:00:00 Requirement already satisfied: scipy>=1.4.1 in d:\anaconda\envs\py37\lib\site-packages (from gym[all]==0.21.0) (1.7.3) Collecting pyglet>=1.4.0 Downloading pyglet-2.0.10-py3-none-any.whl (858 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 858.3/858.3 kB 67.6 kB/s eta 0:00:00 Collecting importlib-resources Downloading importlib_resources-5.12.0-py3-none-any.whl (36 kB) Requirement already satisfied: typing-extensions>=3.6.4 in d:\anaconda\envs\py37\lib\site-packages (from importlib-metadata>=4.8.1->gym[all]==0.21.0) (4.7.1) Requirement already satisfied: zipp>=0.5 in d:\anaconda\env
04-01
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值