ashvardanian / SimSIMD

Up to 200x Faster Dot Products & Similarity Metrics — for Python, Rust, C, JS, and Swift, supporting f64, f32, f16 real & complex, i8, and bit vectors using SIMD for both AVX2, AVX-512, NEON, SVE, & SVE2 📐
https://ashvardanian.com/posts/simsimd-faster-scipy/
Apache License 2.0
988 stars 59 forks source link

Bug: FileNotFoundError: 'VERSION' is back when building during a pip install #209

Closed Benzhaomin closed 1 month ago

Benzhaomin commented 1 month ago

Describe the bug

pip installing from Pypi fails to build a wheel with FileNotFoundError: [Errno 2] No such file or directory: 'VERSION'

This was an issue before, see #150. After some refactoring we're left with no VERSION file again and started reading it again in version 5.6.0 (see commit 885e930877a4e0570224298ab1c2b2997897a7d5).

As a workaround, installing 5.5.1 works as expected. Another option is to clone the repo and pip install ..

Steps to reproduce

In an environment that can't install a wheel, here Centos 7/Python 3.9/glibc 2.17.

$ pip install simsimd
Collecting simsimd
  Using cached simsimd-5.7.0.tar.gz (130 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [15 lines of output]
      Traceback (most recent call last):
        File "/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-9a42ymgh/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
        File "/tmp/pip-build-env-9a42ymgh/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-9a42ymgh/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 318, in run_setup
          exec(code, locals())
        File "<string>", line 9, in <module>
      FileNotFoundError: [Errno 2] No such file or directory: 'VERSION'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Expected behavior

simsimd should be built locally with no error

SimSIMD version

5.7.0

Operating System

Centos 7

Hardware architecture

x86

Which interface are you using?

Python bindings

Contact Details

No response

Are you open to being tagged as a contributor?

Is there an existing issue for this?

Code of Conduct

ashvardanian commented 1 month ago

simsimd should be built locally with no error

That's fair 😄 Merging in a bit!