lilab-bcb / pegasusio

pegasus io module for reading/writing single-cell genomics data
https://pegasusio.readthedocs.io
BSD 3-Clause "New" or "Revised" License
7 stars 4 forks source link

Fail to install pegasusio #112

Open jiananwehi opened 8 months ago

jiananwehi commented 8 months ago

I tried to install pegasusio by following commands: git clone https://github.com/lilab-bcb/pegasusio.git cd pegasusio pip install -e .

The following shows errors: building 'pegasusio.cylib.funcs' extension creating /tmp/tmp1jxpsjv9.build-temp/ext_modules gcc -std=gnu11 -pthread -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/stornext/Bioinf/data/lab_speed/wang.j/python_package/myenv/include -I/stornext/System/data/apps/python/python-3.12.0/include/python3.12 -c ext_modules/fast_funcs.c -o /tmp/tmp1jxpsjv9.build-temp/ext_modules/fast_funcs.o ext_modules/fast_funcs.c:1517:27: fatal error: stdatomic.h: No such file or directory

include

                             ^
  compilation terminated.
  Traceback (most recent call last):
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 185, in _compile
      self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 1041, in spawn
      spawn(cmd, dry_run=self.dry_run, **kwargs)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
      raise DistutilsExecError(
  distutils.errors.DistutilsExecError: command '/usr/bin/gcc' failed with exit code 1

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 150, in run
      self._create_wheel_file(bdist_wheel)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 339, in _create_wheel_file
      files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 262, in _run_build_commands
      self._run_build_subcommands()
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 289, in _run_build_subcommands
      self.run_command(name)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 89, in run
      _build_ext.run(self)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
      self.build_extensions()
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
      self._build_extensions_serial()
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
      self.build_extension(ext)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 250, in build_extension
      _build_ext.build_extension(self, ext)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/Cython/Distutils/build_ext.py", line 135, in build_extension
      super(build_ext, self).build_extension(ext)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
      objects = self.compiler.compile(
                ^^^^^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 600, in compile
      self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
    File "/tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
      raise CompileError(msg)
  distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1
  /tmp/pip-build-env-dc4w78cb/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py:988: _DebuggingTips: Problem in editable installation.
  !!

          ********************************************************************************
          An error happened while installing `pegasusio` in editable mode.

          The following steps are recommended to help debug this problem:

          - Try to install the project normally, without using the editable mode.
            Does the error still persist?
            (If it does, try fixing the problem before attempting the editable mode).
          - If you are using binary extensions, make sure you have all OS-level
            dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
          - Try the latest version of setuptools (maybe the error was already fixed).
          - If you (or your project dependencies) are using any setuptools extension
            or customization, make sure they support the editable mode.

          After following the steps above, if the problem still persists and
          you think this is related to how setuptools handles editable installations,
          please submit a reproducible example
          (see https://stackoverflow.com/help/minimal-reproducible-example) to:

              https://github.com/pypa/setuptools/issues

          See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
          ********************************************************************************

  !!
    cmd_obj.run()
  error: command '/usr/bin/gcc' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building editable for pegasusio Failed to build pegasusio ERROR: Could not build wheels for pegasusio, which is required to install pyproject.toml-based projects

yihming commented 8 months ago

Hi @jiananwehi . As I replied in https://github.com/lilab-bcb/demuxEM/issues/17, could you please check the version of GCC compiler in your system? Thanks!

yihming commented 8 months ago

Although not listed, I could confirm that pegasusio could be installed in Python 3.12 environment.

Based on https://stackoverflow.com/questions/20326604/stdatomic-h-in-gcc-4-8, it seems the issue with "stdatomic.h" file missing was fixed for GCC v4.9+.