cutadapt icon indicating copy to clipboard operation
cutadapt copied to clipboard

Cutadapt install fails on M1 Mac

Open marcelm opened this issue 2 years ago • 2 comments

Reported by @ssyberg in #629

seth@MacBook-Pro-2 ~ % pip install cutadapt
Collecting cutadapt
  Using cached cutadapt-4.1.tar.gz (231 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting dnaio>=0.7.1
  Using cached dnaio-0.9.1.tar.gz (41 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting xopen>=1.1
  Using cached xopen-1.7.0-py3-none-any.whl (15 kB)
Building wheels for collected packages: cutadapt, dnaio
  Building wheel for cutadapt (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for cutadapt (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [35 lines of output]
      Error in sitecustomize; set PYTHONVERBOSE for traceback:
      AssertionError:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-12-arm64-cpython-310
      creating build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/steps.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/align.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/_version.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/log.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/__init__.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/parser.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/tokenizer.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/utils.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/pipeline.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/modifiers.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/statistics.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/json.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/__main__.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/report.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/filters.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/adapters.py -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/_align.pyi -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      copying src/cutadapt/qualtrim.pyi -> build/lib.macosx-12-arm64-cpython-310/cutadapt
      running build_ext
      building 'cutadapt._align' extension
      creating build/temp.macosx-12-arm64-cpython-310
      creating build/temp.macosx-12-arm64-cpython-310/src
      creating build/temp.macosx-12-arm64-cpython-310/src/cutadapt
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c src/cutadapt/_align.c -o build/temp.macosx-12-arm64-cpython-310/src/cutadapt/_align.o
      clang: error: no such file or directory: 'src/cutadapt/_align.c'
      clang: error: no input files
      error: command '/usr/bin/clang' 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 wheel for cutadapt
  Building wheel for dnaio (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for dnaio (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [33 lines of output]
      Error in sitecustomize; set PYTHONVERBOSE for traceback:
      AssertionError:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-12-arm64-cpython-310
      creating build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/interfaces.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/readers.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/_version.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/__init__.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/singleend.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/writers.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/_util.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/pairedend.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/exceptions.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/chunks.py -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/py.typed -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/_version.pyi -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/_core.pyi -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/ascii_check.h -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/_conversions.h -> build/lib.macosx-12-arm64-cpython-310/dnaio
      copying src/dnaio/ascii_check_sse2.h -> build/lib.macosx-12-arm64-cpython-310/dnaio
      running build_ext
      building 'dnaio._core' extension
      creating build/temp.macosx-12-arm64-cpython-310
      creating build/temp.macosx-12-arm64-cpython-310/src
      creating build/temp.macosx-12-arm64-cpython-310/src/dnaio
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c src/dnaio/_core.c -o build/temp.macosx-12-arm64-cpython-310/src/dnaio/_core.o
      clang: error: no such file or directory: 'src/dnaio/_core.c'
      clang: error: no input files
      error: command '/usr/bin/clang' 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 wheel for dnaio
Failed to build cutadapt dnaio
ERROR: Could not build wheels for cutadapt, dnaio, which is required to install pyproject.toml-based projects

Also:

seth@MacBook-Pro-2 ~ % python --version
Python 3.10.8
seth@MacBook-Pro-2 ~ % pip --version
pip 22.3.1 from /opt/homebrew/lib/python3.10/site-packages/pip (python 3.10)
seth@MacBook-Pro-2 ~ %

marcelm avatar Dec 02 '22 16:12 marcelm

The weird messages are

clang: error: no such file or directory: 'src/cutadapt/_align.c'

and

clang: error: no such file or directory: 'src/dnaio/_core.c'

The .c files are not part of the tar.gz file, which is correct because they should normally be generated (by Cython) at installation time.

I don’t have an M1 Mac, but when I simulate not having wheels available on Ubuntu, everything works fine:

pip install --no-binary cutadapt,dnaio cutadapt
...

I’ll have to look into this in more detail later.

marcelm avatar Dec 02 '22 16:12 marcelm

@ssyberg can you run pip install --upgrade setuptools first before you install and try again?

rhpvorderman avatar Jan 02 '23 13:01 rhpvorderman