openai / gym

A toolkit for developing and comparing reinforcement learning algorithms.
https://www.gymlibrary.dev
Other
34.42k stars 8.59k forks source link

[Bug Report] Gym==0.21 not installing anymore #3200

Open allansuzuki opened 1 year ago

allansuzuki commented 1 year ago

Describe the bug Fail to install gym==0.21 (necessary for installing stable-baselines3 and gym[box2d])

Code !pip install gym==0.21

System Info

Linux
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping    : 0
microcode   : 0xffffffff
cpu MHz     : 2199.998
cache size  : 56320 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa mmio_stale_data retbleed
bogomips    : 4399.99
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

Additional context Yesterday (22th March, 2023) everything worked normally. Installed swig and cmake

Log error

Collecting gym==0.21
  Using cached gym-0.21.0.tar.gz (1.5 MB)
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  Preparing metadata (setup.py) ... error
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.

Checklist

pseudo-rnd-thoughts commented 1 year ago

SOLUTION - pip install setuptools==66 setuptool 67+ added a change that malformed version strings are not allowed

Original text: That is a strange error message, I have never seen it before. I know that some users have found that setuptool caused gym v0.21 to break but this normally raises a full error about it

What python version is this for? Do you have any way of replicating the issue on another machine?

nicku-a commented 1 year ago

Having exactly the same issue. Was also working for me yesterday. I'm on Python 3.9.16, OS Linux.

RedTachyon commented 1 year ago

I don't know what exactly happened, but it's likely something to do with the new version of setuptools. Consider the code in this colab:

!pip install --upgrade setuptools==66
!pip install --upgrade gym==0.21
import gym
gym.version.VERSION
>>> '0.21.0'

There are still some warnings along the way, so there might be a deeper issue somewhere.

All that being said, we strongly encourage everyone to migrate to using Gymnasium, since gym won't be receiving any more updates

allansuzuki commented 1 year ago

Thanks to @RedTachyon the tools worked. But it's really strange because it didn't work in the first time. Then I tried to install again and all works.

I'm aware about gymnasium, but then stable-baselines3 and box2d must be updated. =/

allansuzuki commented 1 year ago

Python version 3.9.16 IDE Google Colab

Solution: @RedTachyon post

Thanks for the solution! Issue closed ;)

pseudo-rnd-thoughts commented 1 year ago

SB3 are planning on adding gymnasium as the primary backend (https://github.com/DLR-RM/stable-baselines3/pull/1327). We are not sure on the timeline, might be a couple of months until the pr is merged

pseudo-rnd-thoughts commented 1 year ago

Reopening to other users trying to install gym in the future.

Pythoniasm commented 1 year ago

The fun bug is based on the gym requirement OpenCV specified to opencv-python==3. instead of opencv-python==3 in https://github.com/openai/gym/blob/v0.21.0/setup.py#L20

The recent version of setuptools bugs out with the trailing fullstop . requirements version tag in gym==0.21.0. Sad, but shomewhat funny, still sad.

We can't do anything with respect to gym old 0.21.0 version (@jkterry1 for heads-up). The only possibility is to include backwards capability into setuptools (@abravalheri for heads-up).

As a workaround, I have forked gym and changed the setup.py accordingly to install directly from local directory or different remote repository via git+https.

abravalheri commented 1 year ago

Hi @Pythoniasm, I don't think adding backward compatibility to setuptools is a task we want to undertake.

Setuptools uses packaging for parsing requirements and versions. In their latest versions, packaging intentionally removed support for malformed strings (and we need the latest version of packaging because it fixes other problems).

If anyone is interested in using specific versions of gym with the malformed version string, I believe the best would be building a wheel[^1] in an environment that contains an older version of setuptools (e.g. v65). This wheel can then be installed.

[^1]: For users that are not familiar with the term, wheel is the name for a binary format for distributing Python packages.

pseudo-rnd-thoughts commented 1 year ago

@Pythoniasm and @abravalheri thanks for that. We understand, v0.21 is over 2 years old now and we don't wish to support it so I think for projects that need to use gym v0.21 then they will need to pin setuptools to less than 66

Pythoniasm commented 1 year ago

@pseudo-rnd-thoughts I fully understand the desire to not support the old version anymore. However, there are many research paper codebases and reimplementations of papers who rely on the v0.21.0 version. To provide this backwards compatibility I made a very small change that could be shipped as branch and then as tag v0.21.1 to PyPy: https://github.com/Pythoniasm/gym-fork/tree/fix-v0.21.0

If you open a dedicated branch (rebasing the master would be too crazy), I am happy to create a pull request (can't do that against tags).

@abravalheri I guess that would be a more open/transparent fix instead of providing special wheels. The requirements chain across repositories is real - I am interested if we would spin that further to packaging what libraries are then implicity the root cause.

masonhargrave commented 1 year ago

SOLUTION - pip install setuptools==66 setuptool 67+ added a change that malformed version strings are not allowed

Original text: That is a strange error message, I have never seen it before. I know that some users have found that setuptool caused gym v0.21 to break but this normally raises a full error about it

What python version is this for? Do you have any way of replicating the issue on another machine?

I had the same issue as OP and tried changing setup tools version. After doing this, attemping to install gym only resulted in the following error:

(dreamerv3) mason@mason-MS-7D30:~/Documents/dreamerv3$ !pip install --upgrade gym==0.21
pip install gym==0.21 install --upgrade gym==0.21
Collecting gym==0.21
  Using cached gym-0.21.0.tar.gz (1.5 MB)
  Preparing metadata (setup.py) ... done
Collecting install
  Using cached install-1.3.5-py3-none-any.whl (3.2 kB)
Requirement already satisfied: numpy>=1.18.0 in /home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages (from gym==0.21) (1.25.2)
Collecting cloudpickle>=1.2.0 (from gym==0.21)
  Using cached cloudpickle-2.2.1-py3-none-any.whl (25 kB)
Building wheels for collected packages: gym
  Building wheel for gym (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [489 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib
      creating build/lib/gym
      copying gym/__init__.py -> build/lib/gym
      copying gym/version.py -> build/lib/gym
      copying gym/error.py -> build/lib/gym
      copying gym/core.py -> build/lib/gym
      copying gym/logger.py -> build/lib/gym
      creating build/lib/gym/utils
      copying gym/utils/colorize.py -> build/lib/gym/utils
      copying gym/utils/closer.py -> build/lib/gym/utils
      copying gym/utils/env_checker.py -> build/lib/gym/utils
      copying gym/utils/__init__.py -> build/lib/gym/utils
      copying gym/utils/json_utils.py -> build/lib/gym/utils
      copying gym/utils/seeding.py -> build/lib/gym/utils
      copying gym/utils/atomic_write.py -> build/lib/gym/utils
      copying gym/utils/play.py -> build/lib/gym/utils
      copying gym/utils/ezpickle.py -> build/lib/gym/utils
      creating build/lib/gym/envs
      copying gym/envs/__init__.py -> build/lib/gym/envs
      copying gym/envs/registration.py -> build/lib/gym/envs
      creating build/lib/gym/spaces
      copying gym/spaces/__init__.py -> build/lib/gym/spaces
      copying gym/spaces/box.py -> build/lib/gym/spaces
      copying gym/spaces/tuple.py -> build/lib/gym/spaces
      copying gym/spaces/dict.py -> build/lib/gym/spaces
      copying gym/spaces/multi_binary.py -> build/lib/gym/spaces
      copying gym/spaces/discrete.py -> build/lib/gym/spaces
      copying gym/spaces/space.py -> build/lib/gym/spaces
      copying gym/spaces/utils.py -> build/lib/gym/spaces
      copying gym/spaces/multi_discrete.py -> build/lib/gym/spaces
      creating build/lib/gym/wrappers
      copying gym/wrappers/frame_stack.py -> build/lib/gym/wrappers
      copying gym/wrappers/time_limit.py -> build/lib/gym/wrappers
      copying gym/wrappers/filter_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/normalize.py -> build/lib/gym/wrappers
      copying gym/wrappers/__init__.py -> build/lib/gym/wrappers
      copying gym/wrappers/order_enforcing.py -> build/lib/gym/wrappers
      copying gym/wrappers/rescale_action.py -> build/lib/gym/wrappers
      copying gym/wrappers/flatten_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/record_episode_statistics.py -> build/lib/gym/wrappers
      copying gym/wrappers/transform_reward.py -> build/lib/gym/wrappers
      copying gym/wrappers/resize_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/record_video.py -> build/lib/gym/wrappers
      copying gym/wrappers/pixel_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/transform_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/time_aware_observation.py -> build/lib/gym/wrappers
      copying gym/wrappers/clip_action.py -> build/lib/gym/wrappers
      copying gym/wrappers/monitor.py -> build/lib/gym/wrappers
      copying gym/wrappers/atari_preprocessing.py -> build/lib/gym/wrappers
      copying gym/wrappers/gray_scale_observation.py -> build/lib/gym/wrappers
      creating build/lib/gym/vector
      copying gym/vector/sync_vector_env.py -> build/lib/gym/vector
      copying gym/vector/__init__.py -> build/lib/gym/vector
      copying gym/vector/async_vector_env.py -> build/lib/gym/vector
      copying gym/vector/vector_env.py -> build/lib/gym/vector
      creating build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/humanoid_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/striker.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/half_cheetah.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/walker2d_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/thrower.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/__init__.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/hopper_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/ant.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/inverted_pendulum.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/reacher.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/walker2d.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/hopper.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/swimmer_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/pusher.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/ant_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/inverted_double_pendulum.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/half_cheetah_v3.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/humanoidstandup.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/humanoid.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/mujoco_env.py -> build/lib/gym/envs/mujoco
      copying gym/envs/mujoco/swimmer.py -> build/lib/gym/envs/mujoco
      creating build/lib/gym/envs/robotics
      copying gym/envs/robotics/rotations.py -> build/lib/gym/envs/robotics
      copying gym/envs/robotics/__init__.py -> build/lib/gym/envs/robotics
      copying gym/envs/robotics/robot_env.py -> build/lib/gym/envs/robotics
      copying gym/envs/robotics/hand_env.py -> build/lib/gym/envs/robotics
      copying gym/envs/robotics/fetch_env.py -> build/lib/gym/envs/robotics
      copying gym/envs/robotics/utils.py -> build/lib/gym/envs/robotics
      creating build/lib/gym/envs/unittest
      copying gym/envs/unittest/memorize_digits.py -> build/lib/gym/envs/unittest
      copying gym/envs/unittest/__init__.py -> build/lib/gym/envs/unittest
      copying gym/envs/unittest/cube_crash.py -> build/lib/gym/envs/unittest
      creating build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/rendering.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/__init__.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/continuous_mountain_car.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/cartpole.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/pendulum.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/acrobot.py -> build/lib/gym/envs/classic_control
      copying gym/envs/classic_control/mountain_car.py -> build/lib/gym/envs/classic_control
      creating build/lib/gym/envs/box2d
      copying gym/envs/box2d/lunar_lander.py -> build/lib/gym/envs/box2d
      copying gym/envs/box2d/bipedal_walker.py -> build/lib/gym/envs/box2d
      copying gym/envs/box2d/__init__.py -> build/lib/gym/envs/box2d
      copying gym/envs/box2d/car_racing.py -> build/lib/gym/envs/box2d
      copying gym/envs/box2d/car_dynamics.py -> build/lib/gym/envs/box2d
      creating build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/taxi.py -> build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/__init__.py -> build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/cliffwalking.py -> build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/blackjack.py -> build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/discrete.py -> build/lib/gym/envs/toy_text
      copying gym/envs/toy_text/frozen_lake.py -> build/lib/gym/envs/toy_text
      creating build/lib/gym/envs/robotics/fetch
      copying gym/envs/robotics/fetch/push.py -> build/lib/gym/envs/robotics/fetch
      copying gym/envs/robotics/fetch/slide.py -> build/lib/gym/envs/robotics/fetch
      copying gym/envs/robotics/fetch/pick_and_place.py -> build/lib/gym/envs/robotics/fetch
      copying gym/envs/robotics/fetch/__init__.py -> build/lib/gym/envs/robotics/fetch
      copying gym/envs/robotics/fetch/reach.py -> build/lib/gym/envs/robotics/fetch
      creating build/lib/gym/envs/robotics/hand
      copying gym/envs/robotics/hand/manipulate.py -> build/lib/gym/envs/robotics/hand
      copying gym/envs/robotics/hand/manipulate_touch_sensors.py -> build/lib/gym/envs/robotics/hand
      copying gym/envs/robotics/hand/__init__.py -> build/lib/gym/envs/robotics/hand
      copying gym/envs/robotics/hand/reach.py -> build/lib/gym/envs/robotics/hand
      creating build/lib/gym/wrappers/monitoring
      copying gym/wrappers/monitoring/__init__.py -> build/lib/gym/wrappers/monitoring
      copying gym/wrappers/monitoring/stats_recorder.py -> build/lib/gym/wrappers/monitoring
      copying gym/wrappers/monitoring/video_recorder.py -> build/lib/gym/wrappers/monitoring
      creating build/lib/gym/vector/utils
      copying gym/vector/utils/__init__.py -> build/lib/gym/vector/utils
      copying gym/vector/utils/shared_memory.py -> build/lib/gym/vector/utils
      copying gym/vector/utils/misc.py -> build/lib/gym/vector/utils
      copying gym/vector/utils/numpy_utils.py -> build/lib/gym/vector/utils
      copying gym/vector/utils/spaces.py -> build/lib/gym/vector/utils
      creating build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/reacher.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/inverted_double_pendulum.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/striker.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/point.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/ant.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/humanoidstandup.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/inverted_pendulum.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/pusher.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/half_cheetah.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/humanoid.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/walker2d.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/thrower.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/swimmer.xml -> build/lib/gym/envs/mujoco/assets
      copying gym/envs/mujoco/assets/hopper.xml -> build/lib/gym/envs/mujoco/assets
      creating build/lib/gym/envs/classic_control/assets
      copying gym/envs/classic_control/assets/clockwise.png -> build/lib/gym/envs/classic_control/assets
      creating build/lib/gym/envs/robotics/assets
      copying gym/envs/robotics/assets/LICENSE.md -> build/lib/gym/envs/robotics/assets
      creating build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/pick_and_place.xml -> build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/reach.xml -> build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/robot.xml -> build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/slide.xml -> build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/shared.xml -> build/lib/gym/envs/robotics/assets/fetch
      copying gym/envs/robotics/assets/fetch/push.xml -> build/lib/gym/envs/robotics/assets/fetch
      creating build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_block.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/reach.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/robot_touch_sensors_92.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_pen_touch_sensors.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_egg.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/robot.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_egg_touch_sensors.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_pen.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/shared_asset.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/shared.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/shared_touch_sensors_92.xml -> build/lib/gym/envs/robotics/assets/hand
      copying gym/envs/robotics/assets/hand/manipulate_block_touch_sensors.xml -> build/lib/gym/envs/robotics/assets/hand
      creating build/lib/gym/envs/robotics/assets/stls
      creating build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/torso_lift_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/forearm_roll_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/laser_link.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/shoulder_lift_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/gripper_link.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/bellows_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/estop_link.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/shoulder_pan_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/head_pan_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/elbow_flex_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/base_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/torso_fixed_link.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/wrist_roll_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/l_wheel_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/upperarm_roll_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/head_tilt_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/r_wheel_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      copying gym/envs/robotics/assets/stls/fetch/wrist_flex_link_collision.stl -> build/lib/gym/envs/robotics/assets/stls/fetch
      creating build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/palm.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/TH3_z.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/knuckle.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/lfmetacarpal.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/F1.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/TH1_z.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/F2.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/TH2_z.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/wrist.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/F3.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/forearm_electric.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      copying gym/envs/robotics/assets/stls/hand/forearm_electric_cvx.stl -> build/lib/gym/envs/robotics/assets/stls/hand
      creating build/lib/gym/envs/robotics/assets/textures
      copying gym/envs/robotics/assets/textures/block_hidden.png -> build/lib/gym/envs/robotics/assets/textures
      copying gym/envs/robotics/assets/textures/block.png -> build/lib/gym/envs/robotics/assets/textures
      /home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      installing to build/bdist.linux-x86_64/wheel
      running install
      running install_lib
      creating build/bdist.linux-x86_64
      creating build/bdist.linux-x86_64/wheel
      creating build/bdist.linux-x86_64/wheel/gym
      copying build/lib/gym/__init__.py -> build/bdist.linux-x86_64/wheel/gym
      copying build/lib/gym/version.py -> build/bdist.linux-x86_64/wheel/gym
      copying build/lib/gym/error.py -> build/bdist.linux-x86_64/wheel/gym
      creating build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/colorize.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/closer.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/env_checker.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/__init__.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/json_utils.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/seeding.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/atomic_write.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/play.py -> build/bdist.linux-x86_64/wheel/gym/utils
      copying build/lib/gym/utils/ezpickle.py -> build/bdist.linux-x86_64/wheel/gym/utils
      creating build/bdist.linux-x86_64/wheel/gym/envs
      creating build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/humanoid_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/striker.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      creating build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/reacher.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/inverted_double_pendulum.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/striker.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/point.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/ant.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/humanoidstandup.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/inverted_pendulum.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/pusher.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/half_cheetah.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/humanoid.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/walker2d.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/thrower.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/swimmer.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/assets/hopper.xml -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco/assets
      copying build/lib/gym/envs/mujoco/half_cheetah.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/walker2d_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/thrower.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/hopper_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/ant.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/inverted_pendulum.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/reacher.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/walker2d.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/hopper.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/swimmer_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/pusher.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/ant_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/inverted_double_pendulum.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/half_cheetah_v3.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/humanoidstandup.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/humanoid.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/mujoco_env.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/mujoco/swimmer.py -> build/bdist.linux-x86_64/wheel/gym/envs/mujoco
      copying build/lib/gym/envs/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics
      copying build/lib/gym/envs/robotics/rotations.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/textures
      copying build/lib/gym/envs/robotics/assets/textures/block_hidden.png -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/textures
      copying build/lib/gym/envs/robotics/assets/textures/block.png -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/textures
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/torso_lift_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/forearm_roll_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/laser_link.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/shoulder_lift_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/gripper_link.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/bellows_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/estop_link.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/shoulder_pan_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/head_pan_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/elbow_flex_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/base_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/torso_fixed_link.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/wrist_roll_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/l_wheel_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/upperarm_roll_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/head_tilt_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/r_wheel_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      copying build/lib/gym/envs/robotics/assets/stls/fetch/wrist_flex_link_collision.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/fetch
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/palm.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/TH3_z.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/knuckle.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/lfmetacarpal.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/F1.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/TH1_z.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/F2.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/TH2_z.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/wrist.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/F3.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/forearm_electric.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      copying build/lib/gym/envs/robotics/assets/stls/hand/forearm_electric_cvx.stl -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/stls/hand
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/pick_and_place.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/reach.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/robot.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/slide.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/shared.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/fetch/push.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/fetch
      copying build/lib/gym/envs/robotics/assets/LICENSE.md -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_block.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/reach.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/robot_touch_sensors_92.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_pen_touch_sensors.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_egg.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/robot.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_egg_touch_sensors.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_pen.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/shared_asset.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/shared.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/shared_touch_sensors_92.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/assets/hand/manipulate_block_touch_sensors.xml -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/assets/hand
      copying build/lib/gym/envs/robotics/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      copying build/lib/gym/envs/robotics/robot_env.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      copying build/lib/gym/envs/robotics/hand_env.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch/push.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch/slide.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch/pick_and_place.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch/reach.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/fetch
      copying build/lib/gym/envs/robotics/fetch_env.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      creating build/bdist.linux-x86_64/wheel/gym/envs/robotics/hand
      copying build/lib/gym/envs/robotics/hand/manipulate.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/hand
      copying build/lib/gym/envs/robotics/hand/manipulate_touch_sensors.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/hand
      copying build/lib/gym/envs/robotics/hand/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/hand
      copying build/lib/gym/envs/robotics/hand/reach.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics/hand
      copying build/lib/gym/envs/robotics/utils.py -> build/bdist.linux-x86_64/wheel/gym/envs/robotics
      creating build/bdist.linux-x86_64/wheel/gym/envs/unittest
      copying build/lib/gym/envs/unittest/memorize_digits.py -> build/bdist.linux-x86_64/wheel/gym/envs/unittest
      copying build/lib/gym/envs/unittest/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/unittest
      copying build/lib/gym/envs/unittest/cube_crash.py -> build/bdist.linux-x86_64/wheel/gym/envs/unittest
      copying build/lib/gym/envs/registration.py -> build/bdist.linux-x86_64/wheel/gym/envs
      creating build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/rendering.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      creating build/bdist.linux-x86_64/wheel/gym/envs/classic_control/assets
      copying build/lib/gym/envs/classic_control/assets/clockwise.png -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control/assets
      copying build/lib/gym/envs/classic_control/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/continuous_mountain_car.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/cartpole.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/pendulum.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/acrobot.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      copying build/lib/gym/envs/classic_control/mountain_car.py -> build/bdist.linux-x86_64/wheel/gym/envs/classic_control
      creating build/bdist.linux-x86_64/wheel/gym/envs/box2d
      copying build/lib/gym/envs/box2d/lunar_lander.py -> build/bdist.linux-x86_64/wheel/gym/envs/box2d
      copying build/lib/gym/envs/box2d/bipedal_walker.py -> build/bdist.linux-x86_64/wheel/gym/envs/box2d
      copying build/lib/gym/envs/box2d/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/box2d
      copying build/lib/gym/envs/box2d/car_racing.py -> build/bdist.linux-x86_64/wheel/gym/envs/box2d
      copying build/lib/gym/envs/box2d/car_dynamics.py -> build/bdist.linux-x86_64/wheel/gym/envs/box2d
      creating build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/taxi.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/__init__.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/cliffwalking.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/blackjack.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/discrete.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      copying build/lib/gym/envs/toy_text/frozen_lake.py -> build/bdist.linux-x86_64/wheel/gym/envs/toy_text
      creating build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/__init__.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/box.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/tuple.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/dict.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/multi_binary.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/discrete.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/space.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/utils.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      copying build/lib/gym/spaces/multi_discrete.py -> build/bdist.linux-x86_64/wheel/gym/spaces
      creating build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/frame_stack.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/time_limit.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/filter_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/normalize.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/__init__.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/order_enforcing.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/rescale_action.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/flatten_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      creating build/bdist.linux-x86_64/wheel/gym/wrappers/monitoring
      copying build/lib/gym/wrappers/monitoring/__init__.py -> build/bdist.linux-x86_64/wheel/gym/wrappers/monitoring
      copying build/lib/gym/wrappers/monitoring/stats_recorder.py -> build/bdist.linux-x86_64/wheel/gym/wrappers/monitoring
      copying build/lib/gym/wrappers/monitoring/video_recorder.py -> build/bdist.linux-x86_64/wheel/gym/wrappers/monitoring
      copying build/lib/gym/wrappers/record_episode_statistics.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/transform_reward.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/resize_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/record_video.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/pixel_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/transform_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/time_aware_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/clip_action.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/monitor.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/atari_preprocessing.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/wrappers/gray_scale_observation.py -> build/bdist.linux-x86_64/wheel/gym/wrappers
      copying build/lib/gym/core.py -> build/bdist.linux-x86_64/wheel/gym
      creating build/bdist.linux-x86_64/wheel/gym/vector
      copying build/lib/gym/vector/sync_vector_env.py -> build/bdist.linux-x86_64/wheel/gym/vector
      copying build/lib/gym/vector/__init__.py -> build/bdist.linux-x86_64/wheel/gym/vector
      copying build/lib/gym/vector/async_vector_env.py -> build/bdist.linux-x86_64/wheel/gym/vector
      creating build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/utils/__init__.py -> build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/utils/shared_memory.py -> build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/utils/misc.py -> build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/utils/numpy_utils.py -> build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/utils/spaces.py -> build/bdist.linux-x86_64/wheel/gym/vector/utils
      copying build/lib/gym/vector/vector_env.py -> build/bdist.linux-x86_64/wheel/gym/vector
      copying build/lib/gym/logger.py -> build/bdist.linux-x86_64/wheel/gym
      running install_egg_info
      running egg_info
      writing gym.egg-info/PKG-INFO
      writing dependency_links to gym.egg-info/dependency_links.txt
      writing requirements to gym.egg-info/requires.txt
      writing top-level names to gym.egg-info/top_level.txt
      reading manifest file 'gym.egg-info/SOURCES.txt'
      writing manifest file 'gym.egg-info/SOURCES.txt'
      Copying gym.egg-info to build/bdist.linux-x86_64/wheel/gym-0.21.0-py3.11.egg-info
      running install_scripts
      Traceback (most recent call last):
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/requirements.py", line 35, in __init__
          parsed = parse_requirement(requirement_string)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/_parser.py", line 64, in parse_requirement
          return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/_parser.py", line 82, in _parse_requirement
          url, specifier, marker = _parse_requirement_details(tokenizer)
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/_parser.py", line 126, in _parse_requirement_details
          marker = _parse_requirement_marker(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/_parser.py", line 147, in _parse_requirement_marker
          tokenizer.raise_syntax_error(
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/vendored/packaging/_tokenizer.py", line 163, in raise_syntax_error
          raise ParserSyntaxError(
      wheel.vendored.packaging._tokenizer.ParserSyntaxError: Expected end or semicolon (after version specifier)
          opencv-python>=3.
                       ~~~^

      The above exception was the direct cause of the following exception:

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-j_u3c2wl/gym_64461a01905e4c81a88aeec175e41aa4/setup.py", line 39, in <module>
          setup(
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/dist.py", line 1208, in run_command
          super().run_command(command)
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 416, in run
          self.egg2dist(self.egginfo_dir, distinfo_dir)
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 559, in egg2dist
          pkg_info = pkginfo_to_metadata(egginfo_path, pkginfo_path)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/metadata.py", line 160, in pkginfo_to_metadata
          for key, value in generate_requirements({extra: reqs}):
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/metadata.py", line 138, in generate_requirements
          for new_req in convert_requirements(depends):
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/site-packages/wheel/metadata.py", line 103, in convert_requirements
          parsed_requirement = Requirement(req)
                               ^^^^^^^^^^^^^^^^
        File "/home/mason/anaconda3/envs/dreamerv3/lib/python3.11/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

EDIT:

This problem can be solved by pip install wheel==0.38.4 as mentioned here https://github.com/openai/gym/issues/3202#issuecomment-1513593788

phycoding commented 8 months ago

Try to install the following: create a virtual environment name .venv and install the following. .venv\Scripts\python.exe -m pip install setuptools==65.5.0 pip==21

then activate the virtual env and install the following: pip install gym==0.21

It will definitely work

wanrongyang commented 4 months ago

Creat a new env, make sure you setuptools and wheels are in 65.5.0 and 0.38.4 pip install setuptools==65.5.0, and them pip install wheel==0.38.4, then pip install gym==0.21 could be fine to install