aertslab / scenicplus

SCENIC+ is a python package to build gene regulatory networks (GRNs) using combined or separate single-cell gene expression (scRNA-seq) and single-cell chromatin accessibility (scATAC-seq) data.
Other
186 stars 29 forks source link

SCENIC+ build fails due to annoy package #483

Closed mairamirza closed 1 month ago

mairamirza commented 1 month ago

Hi @SeppeDeWinter

I have been trying to install the latest version of the SCENIC+ tool as described, although I am facing a major build failure issue. I am trying to solve this issue by looking around for solution already available on the web, but unfortunately I couldn't succeed. Could you please advise me what can be done in order to get this resolved. I have attached my error output, if that is helpful in any case.

Thanks and looking forward to your reply!

Error output

Building wheels for collected packages: scenicplus, annoy, loomxpy, pyscenic, pycistarget, pycistopic
  Building wheel for scenicplus (pyproject.toml) ... done
  Created wheel for scenicplus: filename=scenicplus-1.0a1-py3-none-any.whl size=143466 sha256=15894548655a655b91732274c7df51d3bacb937af698446d9d805c82909dd1e6
  Stored in directory: /tmp/pip-ephem-wheel-cache-wt39ueev/wheels/d1/bc/64/1710fed45627caa2c1cd5a0b61c8f38f570d2ac3ec373f9573
  Building wheel for annoy (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      /home/mirza/localenv/mirza/anaconda/envs/GRN/lib/python3.11/site-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!

              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************

      !!
        dist.fetch_build_eggs(dist.setup_requires)
      /home/mirza/localenv/mirza/anaconda/envs/GRN/lib/python3.11/site-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-311/annoy
      copying annoy/__init__.py -> build/lib.linux-x86_64-cpython-311/annoy
      copying annoy/__init__.pyi -> build/lib.linux-x86_64-cpython-311/annoy
      copying annoy/py.typed -> build/lib.linux-x86_64-cpython-311/annoy
      running build_ext
      building 'annoy.annoylib' extension
      creating build/temp.linux-x86_64-cpython-311/src
      /usr/bin/clang++ -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/mirza/localenv/mirza/anaconda/envs/GRN/include -fPIC -O2 -isystem /home/mirza/localenv/mirza/anaconda/envs/GRN/include -fPIC -I/home/mirza/localenv/mirza/anaconda/envs/GRN/include/python3.11 -c src/annoymodule.cc -o build/temp.linux-x86_64-cpython-311/src/annoymodule.o -D_CRT_SECURE_NO_WARNINGS -fpermissive -march=native -O3 -ffast-math -fno-associative-math -DANNOYLIB_MULTITHREADED_BUILD -std=c++14
      error: command '/usr/bin/clang++' failed: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for annoy
  Running setup.py clean for annoy
  Building wheel for loomxpy (pyproject.toml) ... done
  Created wheel for loomxpy: filename=loomxpy-0.4.2-py3-none-any.whl size=28486 sha256=1c540a867e0ee0425c035610fdcc9961a0bb2da46af5c278b38d2e3645ad4958
  Stored in directory: /tmp/pip-ephem-wheel-cache-wt39ueev/wheels/7a/3a/8a/21d26a485464c1c66d81da84ae8c8536ebf9629f2d4ec480da
  Building wheel for pyscenic (setup.py) ... done
  Created wheel for pyscenic: filename=pyscenic-0.12.1+8.gd2309fe-py3-none-any.whl size=7100117 sha256=5311a1e3b5486535b4d22b79defde5edbb8326004f47837a8beb97eeed0fcd48
  Stored in directory: /tmp/pip-ephem-wheel-cache-wt39ueev/wheels/34/b0/cc/4961f5e29900a4e897551d3390658f02f1f34d13813d49b852
  Building wheel for pycistarget (pyproject.toml) ... done
  Created wheel for pycistarget: filename=pycistarget-1.0a2-py3-none-any.whl size=29092 sha256=615dc310a6f6c4f379189485fdb00fc63598291a5a3a9d2c1f22aceb554c9ad9
  Stored in directory: /tmp/pip-ephem-wheel-cache-wt39ueev/wheels/9e/f3/f1/783c17fdf05516179f2f66a088ea6b41ab2c7d8afe8e40e090
  Building wheel for pycistopic (pyproject.toml) ... done
  Created wheel for pycistopic: filename=pycisTopic-2.0a0-py3-none-any.whl size=125401 sha256=49e408e2f9bc481034233b4d2909876679983b2dcb1e90ea5f8cb3c2580c7ed3
  Stored in directory: /tmp/pip-ephem-wheel-cache-wt39ueev/wheels/c1/c7/24/a73f70fa0e8797e75a8feaad32c6ad3730d8ca2b6809158ca0
Successfully built scenicplus loomxpy pyscenic pycistarget pycistopic
Failed to build annoy
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (annoy)

Version (please complete the following information):

Additional context Add any other context about the problem here.

yojetsharma commented 1 month ago

Installing python-annoy from conda helped: conda install conda-forge::python-annoy

mairamirza commented 1 month ago

Thank you for the prompt response. I followed your instruction and it solved my issue.