PyWavelets / pywt

PyWavelets - Wavelet Transforms in Python
http://pywavelets.readthedocs.org
MIT License
1.97k stars 460 forks source link

No aarch64 wheels for python3.7 #625

Closed tbbharaj closed 2 years ago

tbbharaj commented 2 years ago

It looks like no aarch64 wheels are present for python3.7 in PyWavelets version 1.2.0. Building it from source on python3.7 or even doing pip install PyWavelets throws following error:

[ec2-user@ip-172-31-31-140 pywt]$ pip3 install .
Defaulting to user installation because normal site-packages is not writeable
Processing /home/ec2-user/pywt
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 /usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp2klq1jku
         cwd: /tmp/pip-req-build-sampf9lj
    Complete output (22 lines):
    setup.py:366: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
      warnings.warn("Unrecognized setuptools command, proceeding with "
    Traceback (most recent call last):
      File "/usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
        main()
      File "/usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
        json_out['return_val'] = hook(**hook_input['kwargs'])
      File "/usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel
        return hook(metadata_directory, config_settings)
      File "/tmp/pip-build-env-9im6rdqx/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 188, in prepare_metadata_for_build_wheel
        self.run_setup()
      File "/tmp/pip-build-env-9im6rdqx/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 282, in run_setup
        self).run_setup(setup_script=setup_script)
      File "/tmp/pip-build-env-9im6rdqx/overlay/lib/python3.7/site-packages/setuptools/build_meta.py", line 174, in run_setup
        exec(compile(code, __file__, 'exec'), locals())
      File "setup.py", line 478, in <module>
        setup_package()
      File "setup.py", line 468, in setup_package
        ext_modules = get_ext_modules(USE_CYTHON)
      File "setup.py", line 182, in get_ext_modules
        from numpy import get_include as get_numpy_include
    ModuleNotFoundError: No module named 'numpy'
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 /usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp2klq1jku Check the logs for full command output.

This is causing scikit-image installation to fail as well, as scikit-image as dependency on PyWavelets>=1.1.1. Looks like aarch64 wheels existed for python3.7 in version 1.1.1 but got removed in latest release. Can we enable aarch64 wheels for python3.7 for version 1.2.0 as well?

grlee77 commented 2 years ago

I will try to see if we can add it

grlee77 commented 2 years ago

I am testing it here: https://github.com/grlee77/pywt/actions/runs/1919777979 (the deployment step won't go through since it is not tagged as a release yet, but hopefully the wheel build/test will complete successfully)

grlee77 commented 2 years ago

Also a second version with *musllinux* cases excluded and manylinux versions updated to be consistent with the NumPy versions in pyproject.toml and the ones in the scikit-image wheel building script: https://github.com/grlee77/pywt/actions/runs/1919832449

tbbharaj commented 2 years ago

I did some testing on my local branch to get python 3.7 aarch64 wheels https://github.com/tbbharaj/pywt/actions/runs/1918657075

grlee77 commented 2 years ago

Okay, it does look like the changes proposed in #626 are working. The test run linked to in https://github.com/PyWavelets/pywt/issues/625#issuecomment-1056063545 is equivalent to commit 49b9586 in that PR.

grlee77 commented 2 years ago

@tbbharaj, I tagged a new release with these wheels (1.3.0). Please try it out.

closing as fixed by #627 and the 1.3.0 release.