Blosc / python-blosc

A Python wrapper for the extremely fast Blosc compression library

Home Page:https://www.blosc.org/python-blosc/python-blosc.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blosc 1.10 fails to build from source when installed from `pip` (e.g. on Python 3.6)

itamarst opened this issue · comments

$ pip install --no-binary :all: blosc 
Collecting blosc
  Downloading blosc-1.10.0.tar.gz (845 kB)
     |████████████████████████████████| 845 kB 4.3 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /tmp/venv/bin/python3.8 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ed60eri2/blosc/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ed60eri2/blosc/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-97mman7p
         cwd: /tmp/pip-install-ed60eri2/blosc/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-ed60eri2/blosc/setup.py", line 18, in <module>
        from skbuild import setup
    ModuleNotFoundError: No module named 'skbuild'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
WARNING: You are using pip version 20.2.2; however, version 20.3.3 is available.
You should consider upgrading via the '/tmp/venv/bin/python3.8 -m pip install --upgrade pip' command.

The problem is that the way pip figures out the build dependencies is by importing setup.py... but setup.py import scikit-build, thus blowing up before pip can figure out that it needs scikit-build installed.

(I hit this because my install for some reason didn't find the macOS binary wheel, so it fell back to tarball build, not sure why that happened.)

Ah, the reason I hit source build is because I installed on Python 3.6, and Python 3.6 doesn't have a binary wheel available. I updated the title.

Thanks for bringing this to our attention. This should have been fixed in the new 1.10.1 release.