vwxyzjn / cleanrl

High-quality single file implementation of Deep Reinforcement Learning algorithms with research-friendly features (PPO, DQN, C51, DDPG, TD3, SAC, PPG)
http://docs.cleanrl.dev
Other
5.54k stars 631 forks source link

Poetry install fails with "isaacgymenvs (rev poetry) is not satisfied" #251

Closed edlanglois closed 2 years ago

edlanglois commented 2 years ago

Problem Description

Running poetry install (on master @ df3ab2a) fails with the message

  [BUG]  isaacgymenvs (rev poetry) is not satisfied.

Checklist

Current Behavior

The install fails. Full output:

> poetry install
The currently activated Python version 3.10.5 is not supported by the project (>=3.7.1,<3.10).
Trying to find and use a compatible version.
Using python3 (3.9.13)
Installing dependencies from lock file

  RuntimeError

  [BUG]  isaacgymenvs (rev poetry) is not satisfied.

  at /usr/lib/python3.10/site-packages/poetry/mixology/partial_solution.py:200 in satisfier
      196│             # As soon as we have enough assignments to satisfy term, return them.
      197│             if assigned_term.satisfies(term):
      198│                 return assignment
      199│
    → 200│         raise RuntimeError("[BUG] {} is not satisfied.".format(term))
      201│
      202│     def satisfies(self, term):  # type: (Term) -> bool
      203│         return self.relation(term) == SetRelation.SUBSET
      204│

My system python is 3.10 but python 3.9 is on path, which poetry found.

Expected Behavior

The install completes successfully.

Possible Solution

Not sure, poetry install -E isaacgym fails the same way, as does python3.9 -m poetry install (to run poetry under python3.9 instead of the system python).

Steps to Reproduce

git clone https://github.com/vwxyzjn/cleanrl.git && cd cleanrl
poetry install
vwxyzjn commented 2 years ago

Did you follow the steps here https://docs.cleanrl.dev/rl-algorithms/ppo/#ppo_continuous_action_isaacgympy

vwxyzjn commented 2 years ago

Also note Isaac gym strictly supports python <= 3.8.11

edlanglois commented 2 years ago

I'm not intending to use Isaac gym, I just tried removing the isaacgym dependencies from pyproject.toml and was able to get cleanrl to install that way. It looks like you intended for Isaac gym to be an optional dependency but the default install seems to require it.

vwxyzjn commented 2 years ago

Hmm on CI the installation passes and it looks like this could be a poetry solver bug. See https://github.com/python-poetry/poetry/issues/5311#issuecomment-1094402541. What poetry version are you using?

vwxyzjn commented 2 years ago

Thanks for reporting this!

edlanglois commented 2 years ago

NP, thanks for the great software and all the work analyzing RL implementations! I was using poetry 1.1.14. I tried 1.2.0b3 and the install worked, so it is indeed an issue with poetry.