Skip to content

"pip install ray" requires gcc due to setproctitle #3406

@robertnishihara

Description

@robertnishihara

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16
  • Ray installed from (source or binary): pip
  • Ray version: nightly wheels
  • Python version: 3.6

I actually was installing Ray through the autoscaler with

setup_commands:
    - sudo apt-get update
    # - sudo apt-get install -y cmake pkg-config build-essential autoconf curl libtool unzip flex bison python
    - wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh || true
    - bash Anaconda3-5.0.1-Linux-x86_64.sh -b -p $HOME/anaconda3 || true
    - echo 'export PATH="$HOME/anaconda3/bin:$PATH"' >> ~/.bashrc

    - pip install boto3==1.4.8 cython==0.27.3
    - pip install https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-0.5.3-cp36-cp36m-manylinux1_x86_64.whl

It failed with

Building wheels for collected packages: setproctitle
  Running setup.py bdist_wheel for setproctitle: started
  Running setup.py bdist_wheel for setproctitle: finished with status 'error'
  Complete output from command /home/ubuntu/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5s9_wmul/setproctitle/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpljn3n0ynpip-wheel- --python-tag cp36:
  running bdist_wheel
  running build
  running build_ext
  building 'setproctitle' extension
  creating build
  creating build/temp.linux-x86_64-3.6
  creating build/temp.linux-x86_64-3.6/src
  gcc -pthread -B /home/ubuntu/anaconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DSPT_VERSION=1.1.10 -DHAVE_SYS_PRCTL_H=1 -I/home/ubuntu/anaconda3/include/python3.6m -c src/setproctitle.c -o build/temp.linux-x86_64-3.6/src/setproctitle.o
  unable to execute 'gcc': No such file or directory
  error: command 'gcc' failed with exit status 1
  
  ----------------------------------------
  Running setup.py clean for setproctitle
  Failed building wheel for setproctitle
Failed to build setproctitle
Installing collected packages: redis, flatbuffers, setproctitle, funcsigs, ray
  Running setup.py install for setproctitle: started
    Running setup.py install for setproctitle: finished with status 'error'
    Complete output from command /home/ubuntu/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5s9_wmul/setproctitle/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-7r48zj4i-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'setproctitle' extension
    creating build
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/src
    gcc -pthread -B /home/ubuntu/anaconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DSPT_VERSION=1.1.10 -DHAVE_SYS_PRCTL_H=1 -I/home/ubuntu/anaconda3/include/python3.6m -c src/setproctitle.c -o build/temp.linux-x86_64-3.6/src/setproctitle.o
    unable to execute 'gcc': No such file or directory
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/home/ubuntu/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5s9_wmul/setproctitle/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-7r48zj4i-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-5s9_wmul/setproctitle/
You are using pip version 9.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
NodeUpdater: Error updating (Exit Status 1) 

Basically, pip installing ray requires gcc to build setproctitle, which is a bit unfortunate. This seems like it could cause a lot of installation failures.

Is there good a way to optionally pull certain dependencies but not "require" them?

cc @ericl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions