Nightly build for Ray3.0.0

How severe does this issue affect your experience of using Ray?

  • Medium: It contributes to significant difficulty to complete my task, but I can work around it.

My Dockerfile has a line that is able to successfully build an image with Ray3.0.0dev

RUN pip install -U "ray[default] @ https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-3.0.0.dev0-cp36-cp36m-manylinux2014_x86_64.whl"

However, when I try to run my training script, I received the following error:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/ray/tune/progress_reporter.py", line 48, in <module>
    from tabulate import tabulate
ModuleNotFoundError: No module named 'tabulate'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 20, in <module>
    from ray import tune
  File "/usr/local/lib/python3.6/dist-packages/ray/tune/__init__.py", line 2, in <module>
    from ray.tune.tune import run_experiments, run
  File "/usr/local/lib/python3.6/dist-packages/ray/tune/tune.py", line 16, in <module>
    from ray.tune.progress_reporter import (
  File "/usr/local/lib/python3.6/dist-packages/ray/tune/progress_reporter.py", line 51, in <module>
    "ray.tune in ray > 0.7.5 requires 'tabulate'. "
ImportError: ray.tune in ray > 0.7.5 requires 'tabulate'. Please re-run 'pip install ray[tune]' or 'pip install ray[rllib]'.

and realized that I need ray[tune] and ray[rllib] as well.

How do I install these without version conflicts?

python -m pip install ray[rllib]==2.0.0 && \
python -m pip install ray[tune]==2.0.0

produces:

ERROR: Cannot install ray[default]==3.0.0.dev0 and ray[tune]==2.0.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    ray[tune] 2.0.0 depends on ray 2.0.0 (from https://files.pythonhosted.org/packages/d5/8a/8de50007adadf482ce1e494a16983c02e0ec34841a232e573dde63caab97/ray-2.0.0-cp36-cp36m-manylinux2014_x86_64.whl#sha256=8681c217059504394ab0c295efc622210e0b763e48f48541a9589f0657915ce3 (from https://pypi.org/simple/ray/))
    ray[default] 3.0.0.dev0 depends on ray 3.0.0.dev0 (from https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-3.0.0.dev0-cp36-cp36m-manylinux2014_x86_64.whl)

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

Please advise.

If you install ray[tune] and ray[rllib] the way you did, these will be taken from pypi.
Have you tried pip install -U "ray[tune] @ https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-3.0.0.dev0-cp36-cp36m-manylinux2014_x86_64.whl"?

1 Like

@hridayns as @arturn has mentioned you need to also install the module specific requirements for tune (or other modules in Ray).

See also the Linux installation help I created here.

1 Like

@hridayns You can specify multiple requirements at the same time like this.

pip install - U ray[tune,rllib,default,*etc...* ] @...

2 Likes