explosion / preshed

💥 Cython hash tables that assume keys are pre-hashed
MIT License
82 stars 19 forks source link

preshed 3.0.5 began failing pip installation #30

Closed dciborow closed 3 years ago

dciborow commented 3 years ago

Preshed is a nested dependency in my project from spacey. My builds just picked up the version 3.0.5, and has begun failing with the following error. When I pin back to 3.0.4, my pip install begins working again.

Was there an expecting breaking change in 3.0.5 that I am missing?

2020-12-09T19:24:59.6110019Z Collecting preshed==3.0.5 2020-12-09T19:24:59.6210606Z Downloading preshed-3.0.5.tar.gz (14 kB) 2020-12-09T19:24:59.6399340Z Preparing wheel metadata: started 2020-12-09T19:25:00.1628380Z Preparing wheel metadata: finished with status 'error' 2020-12-09T19:25:00.1645557Z  ERROR: Command errored out with exit status 1: 2020-12-09T19:25:00.1646588Z command: /usr/bin/python3.7 /usr/local/lib/python3.7/dist-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpf5g9mv31 2020-12-09T19:25:00.1653575Z cwd: /tmp/pip-download-0u0d7ve0/preshed 2020-12-09T19:25:00.1654277Z Complete output (530 lines): 2020-12-09T19:25:00.1654674Z
2020-12-09T19:25:00.1655035Z Error compiling Cython file: 2020-12-09T19:25:00.1656451Z ------------------------------------------------------------ 2020-12-09T19:25:00.1657242Z ... 2020-12-09T19:25:00.1657641Z from libc.stdint cimport uint64_t, uint32_t 2020-12-09T19:25:00.1658129Z from cymem.cymem cimport Pool 2020-12-09T19:25:00.1662967Z ^ 2020-12-09T19:25:00.1664461Z ------------------------------------------------------------ 2020-12-09T19:25:00.1665029Z
2020-12-09T19:25:00.1665822Z preshed/bloom.pxd:2:0: 'cymem/cymem.pxd' not found 2020-12-09T19:25:00.1666259Z

adrianeboyd commented 3 years ago

Yes, we've been working on modernizing the packaging, especially for the sdists. You'll need at least pip 19.0 (where there is support for both PEP 517 and 518).

It's probably also a good idea to upgrade setuptools, but I've only noticed problems there when building the sdists, not when installing them.

dciborow commented 3 years ago

We are using pip 20.2.4, with both 3.0.4 and 3.0.5, but I will double check setuptools.

adrianeboyd commented 3 years ago

Hmm, what's the pip command that you are using? There should be a line that looks like Installing build dependencies ... in the output unless you've added extra settings. If I force a source install with pip install preshed --no-binary preshed, the output looks like this:

Collecting preshed
  Downloading preshed-3.0.5.tar.gz (14 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Collecting cymem<2.1.0,>=2.0.2
  Using cached cymem-2.0.5-cp37-cp37m-manylinux2014_x86_64.whl (35 kB)
Collecting murmurhash<1.1.0,>=0.28.0
  Using cached murmurhash-1.0.5-cp37-cp37m-manylinux2014_x86_64.whl (20 kB)
Building wheels for collected packages: preshed
  Building wheel for preshed (PEP 517) ... done
  Created wheel for preshed: filename=preshed-3.0.5-cp37-cp37m-linux_x86_64.whl size=583228 sha256=976bd98520bb06c26e6ca0bd6ff58a74432985b62b3eaba36c7a14d9ca53f06a
  Stored in directory: /home/adriane/.cache/pip/wheels/58/42/64/25ebd20d69c6b9b9ef87e9f39dbd12e61b167a24fe1784f010
Successfully built preshed
Installing collected packages: murmurhash, cymem, preshed
Successfully installed cymem-2.0.5 murmurhash-1.0.5 preshed-3.0.5

This is with:

pip==20.3.1
setuptools==51.0.0
adrianeboyd commented 3 years ago

You may well need an updated version of setuptools for the install, too. My best guess here is that you probably need >45.0.0.