numcodecs: 0.6.4 install fails on Mac OSX, Windows CI machines

Minimal, reproducible code sample, a copy-pastable example if possible

We (https://github.com/napari/napari/issues/665) are running into errors installing dask / zarr on our mac osx and windows CI due to the recent 0.6.4 release. On our linux CI it installs fine. For mac and windows we end with the following, but please see the links above for the full stack traces:

  ERROR: Failed building wheel for numcodecs

Problem description

Expected outcome is successful install

Version and installation information

Please provide the following:

  • Value of numcodecs.__version__ 0.6.4
  • Version of Python interpreter: 3.6 and 3.7
  • Operating system: Windows and Mac
  • How NumCodecs was installed: pip in our CI

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 23 (17 by maintainers)

Most upvoted comments

I’ve responded in the issue.

FWIW we also test builds on macOS (as of this release in fact) and Windows. So I think once the CI issue is sorted things will start working for you.

As of 0.7.1, we now build and publish wheels from CI to PyPI for macOS, Linux, and Windows. Would encourage people to give those a try and report back.

Going to go ahead and close this (assuming wheels have fixed the issue), though please feel free to reopen (or ping us to do so) if not. Thanks!

Yeah @jeromekelleher that’s what we are discussing in issue ( https://github.com/zarr-developers/numcodecs/issues/70 ). That or using wheels from some of our dependencies (like Blosc) to simplify the installation process here.

Perhaps users wanting to fail the build could set an environment variable to get that behavior.

The issue is that people don’t know that they would need to do this because soft compile errors are non-standard. I don’t think pip lets you warn from a setup.py, so there is no way to let the user know something has failed until your code crashes with an importerror. If you get an error, then you know it doesn’t work and can pass the variable to disable the extensions and try again. Maybe we need to enhance the error message to tell people about this flag. We could also add something like NUMCODECS_SILENT_COMPILE_ERRORS=1 to get back to the old behavior up front.