rrwick/Badread

edlib requirement caused install hiccup

betteridiot opened this issue · 2 comments

Describe the bug
On a minimal install of badread within a Windows Subsystem for Linux build of Ubuntu 18.04 64-bit, the installation of edlib via the requirments.txt can cause an issue if the machine does not have the most up-to-date version of build-essentials installed. View #2 for all output

To reproduce

(base) $ conda create -n badread python=3.6 --no-default-packages && conda activate badread
(badread) $ pip install git+https://github.com/rrwick/Badread.git
Collecting git+https://github.com/rrwick/Badread.git
  Cloning https://github.com/rrwick/Badread.git to /tmp/pip-req-build-6sj3au9h
Collecting edlib (from Badread==0.1.3)
  Downloading https://files.pythonhosted.org/packages/33/04/0dd73c02c0a5148754a6144df9a7b5dd55ccdbb1b17481bbc89b0193c544/edlib-1.2.4.tar.gz (54kB)
    100% |████████████████████████████████| 61kB 1.3MB/s
Collecting numpy (from Badread==0.1.3)
  Downloading https://files.pythonhosted.org/packages/35/d5/4f8410ac303e690144f0a0603c4b8fd3b986feb2749c435f7cdbb288f17e/numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl (17.3MB)
    100% |████████████████████████████████| 17.3MB 1.4MB/s
Collecting scipy (from Badread==0.1.3)
  Downloading https://files.pythonhosted.org/packages/7f/5f/c48860704092933bf1c4c1574a8de1ffd16bf4fde8bab190d747598844b2/scipy-1.2.1-cp36-cp36m-manylinux1_x86_64.whl (24.8MB)
    100% |████████████████████████████████| 24.8MB 795kB/s
Building wheels for collected packages: Badread, edlib
  Building wheel for Badread (setup.py) ... done
  Stored in directory: /tmp/pip-ephem-wheel-cache-p2cgzrv1/wheels/db/38/bd/d192f5ff0b1d97bab8a1b7478730232764f120170c8a730e57
  Building wheel for edlib (setup.py) ... error
  Complete output from command /root/miniconda3/envs/badread/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-926py29e/edlib/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/pip-wheel-jd40pj7t --python-tag cp36:
  running bdist_wheel
  running build
  running build_ext
  building 'edlib' extension
  creating build
  creating build/temp.linux-x86_64-3.6
  creating build/temp.linux-x86_64-3.6/edlib
  creating build/temp.linux-x86_64-3.6/edlib/src
  gcc -pthread -B /root/miniconda3/envs/badread/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Iedlib/include -I/root/miniconda3/envs/badread/include/python3.6m -c edlib.bycython.cpp -o build/temp.linux-x86_64-3.6/edlib.bycython.o -O3 -std=c++11
  gcc: error trying to exec 'cc1plus': execvp: No such file or directory
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for edlib
  Running setup.py clean for edlib
Successfully built Badread
Failed to build edlib
Installing collected packages: edlib, numpy, scipy, Badread
  Running setup.py install for edlib ... error
    Complete output from command /root/miniconda3/envs/badread/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-926py29e/edlib/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-record-b2nec6ur/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'edlib' extension
    creating build
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/edlib
    creating build/temp.linux-x86_64-3.6/edlib/src
    gcc -pthread -B /root/miniconda3/envs/badread/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Iedlib/include -I/root/miniconda3/envs/badread/include/python3.6m -c edlib.bycython.cpp -o build/temp.linux-x86_64-3.6/edlib.bycython.o -O3 -std=c++11
    gcc: error trying to exec 'cc1plus': execvp: No such file or directory
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/root/miniconda3/envs/badread/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-926py29e/edlib/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-record-b2nec6ur/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-926py29e/edlib/

System info

  • Windows Subsystem for Linux
  • OS: Ubuntu 18.04.2 LTS (Bionic Beaver)
  • Python version: Python 3.6.7

Suggested Actions
Add a FAQ page to your Wiki and prescribe updating build-essentials before install. This might be able to preempt this problem in the future

Thanks! It's easy to forget that not everyone has compilers set up on their machine 😄

I've added an Installation issues page to the wiki and linked to it in the installation section of the README. This page covers installing compilers for common OSs (and pip issues to address #4).

Thank you. This addresses my concern here.