Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build 4.5 wheels on MacOS Python 3.10 - Bump numpy to 1.21.4 #692

Closed
3 of 4 tasks
Avasam opened this issue Jul 21, 2022 · 2 comments · Fixed by #720
Closed
3 of 4 tasks

Can't build 4.5 wheels on MacOS Python 3.10 - Bump numpy to 1.21.4 #692

Avasam opened this issue Jul 21, 2022 · 2 comments · Fixed by #720
Assignees

Comments

@Avasam
Copy link

Avasam commented Jul 21, 2022

Expected behaviour

opencv-python 4.5 to correctly install on x86_64 MacOs Python 3.10

Actual behaviour

It seems numpy is pinned to 1.21.2, which doesn't contain build wheels for Python 3.10 on Mac.
numpy-1.21.4 does install correctly.
I cannot currently use opencv-python 4.6 because of an issue with PyInstaller (See pyinstaller/pyinstaller#6889 and pyinstaller/pyinstaller-hooks-contrib#110 (comment) for more details)

MacOS Python 3.10 opencv-python-headless>=4.5.4,<4.6
Collecting opencv-python-headless<4.6,>=4.5.4
  Using cached opencv-python-headless-4.5.5.64.tar.gz (89.9 MB)
  Installing build dependencies ... error
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [212 lines of output]
      Ignoring numpy: markers 'python_version == "3.6" and platform_machine != "aarch64" and platform_machine != "arm64"' don't match your environment
      Ignoring numpy: markers 'python_version == "3.7" and platform_machine != "aarch64" and platform_machine != "arm64"' don't match your environment
      Ignoring numpy: markers 'python_version == "3.8" and platform_machine != "aarch64" and platform_machine != "arm64"' don't match your environment
      Ignoring numpy: markers 'python_version <= "3.9" and sys_platform == "linux" and platform_machine == "aarch64"' don't match your environment
      Ignoring numpy: markers 'python_version <= "3.9" and sys_platform == "darwin" and platform_machine == "arm64"' don't match your environment
      Ignoring numpy: markers 'python_version == "3.9" and platform_machine != "aarch64" and platform_machine != "arm64"' don't match your environment
      Collecting setuptools
        Using cached setuptools-63.2.0-py3-none-any.whl (1.2 MB)
      Collecting wheel
        Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
      Collecting scikit-build
        Using cached scikit_build-0.15.0-py2.py3-none-any.whl (77 kB)
      Collecting cmake
        Using cached cmake-3.22.5-py2.py3-none-macosx_10_10_universal2.macosx_10_10_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl (75.2 MB)
      Collecting pip
        Using cached pip-22.2-py3-none-any.whl (2.0 MB)
      Collecting numpy==1.21.2
        Using cached numpy-1.21.2.zip (10.3 MB)
        Installing build dependencies: started
        Installing build dependencies: finished with status 'done'
        Getting requirements to build wheel: started
        Getting requirements to build wheel: finished with status 'done'
        Preparing metadata (pyproject.toml): started
        Preparing metadata (pyproject.toml): finished with status 'done'
      Collecting distro
        Using cached distro-1.7.0-py3-none-any.whl (20 kB)
      Collecting packaging
        Using cached packaging-21.3-py3-none-any.whl (40 kB)
      Collecting pyparsing!=3.0.5,>=2.0.2
        Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
      Building wheels for collected packages: numpy
        Building wheel for numpy (pyproject.toml): started
        Building wheel for numpy (pyproject.toml): finished with status 'error'
        error: subprocess-exited-with-error
      
        × Building wheel for numpy (pyproject.toml) did not run successfully.
        │ exit code: 1
        ╰─> [168 lines of output]
            setup.py:63: RuntimeWarning: NumPy 1.21.2 may not yet support Python 3.10.
              warnings.warn(
            Running from numpy source directory.
            /private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/tools/cythonize.py:69: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
              from distutils.version import LooseVersion
            Processing numpy/random/_bounded_integers.pxd.in
            Processing numpy/random/_philox.pyx
            Processing numpy/random/_bounded_integers.pyx.in
            Processing numpy/random/_sfc64.pyx
            Processing numpy/random/_mt19937.pyx
            Processing numpy/random/bit_generator.pyx
            Processing numpy/random/mtrand.pyx
            Processing numpy/random/_generator.pyx
            Processing numpy/random/_pcg64.pyx
            Processing numpy/random/_common.pyx
            Cythonizing sources
            blas_opt_info:
            blas_mkl_info:
            customize UnixCCompiler
              libraries mkl_rt not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            blis_info:
              libraries blis not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            openblas_info:
              libraries openblas not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            accelerate_info:
              libraries accelerate not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
            Library accelerate was not found. Ignoring
              libraries veclib not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
            Library veclib was not found. Ignoring
              FOUND:
                extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
                extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
                define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
      
              FOUND:
                extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
                extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
                define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
      
            non-existing path in 'numpy/distutils': 'site.cfg'
            lapack_opt_info:
            lapack_mkl_info:
              libraries mkl_rt not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            openblas_lapack_info:
              libraries openblas not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            openblas_clapack_info:
              libraries openblas,lapack not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
            flame_info:
              libraries flame not found in ['/Library/Frameworks/Python.framework/Versions/3.10/lib', '/usr/local/lib', '/usr/lib']
              NOT AVAILABLE
      
              FOUND:
                extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
                extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
                define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
      
            Warning: attempted relative import with no known parent package
            /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/dist.py:274: UserWarning: Unknown distribution option: 'define_macros'
              warnings.warn(msg)
            running bdist_wheel
            running build
            running config_cc
            unifing config_cc, config, build_clib, build_ext, build commands --compiler options
            running config_fc
            unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
            running build_src
            build_src
            building py_modules sources
            creating build
            creating build/src.macosx-10.9-universal2-3.10
            creating build/src.macosx-10.9-universal2-3.10/numpy
            creating build/src.macosx-10.9-universal2-3.10/numpy/distutils
            building library "npymath" sources
            Could not locate executable gfortran
            Could not locate executable f95
            Could not locate executable f90
            Could not locate executable f77
            Could not locate executable xlf90
            Could not locate executable xlf
            Could not locate executable ifort
            Could not locate executable ifc
            Could not locate executable g77
            Could not locate executable g95
            Could not locate executable pgfortran
            don't know how to compile Fortran code on platform 'posix'
            creating build/src.macosx-10.9-universal2-3.10/numpy/core
            creating build/src.macosx-10.9-universal2-3.10/numpy/core/src
            creating build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath
            conv_template:> build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath/npy_math_internal.h
              adding 'build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath' to include_dirs.
            conv_template:> build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath/ieee754.c
            conv_template:> build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath/npy_math_complex.c
            None - nothing done with h_files = ['build/src.macosx-10.9-universal2-3.10/numpy/core/src/npymath/npy_math_internal.h']
            building library "npyrandom" sources
            building extension "numpy.core._multiarray_tests" sources
            creating build/src.macosx-10.9-universal2-3.10/numpy/core/src/multiarray
            conv_template:> build/src.macosx-10.9-universal2-3.10/numpy/core/src/multiarray/_multiarray_tests.c
            building extension "numpy.core._multiarray_umath" sources
            Traceback (most recent call last):
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
                main()
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
                json_out['return_val'] = hook(**hook_input['kwargs'])
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
                return _build_backend().build_wheel(wheel_directory, config_settings,
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 211, in build_wheel
                return self._build_with_temp_dir(['bdist_wheel'], '.whl',
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 197, in _build_with_temp_dir
                self.run_setup()
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 248, in run_setup
                super(_BuildMetaLegacyBackend,
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 142, in run_setup
                exec(compile(code, __file__, 'exec'), locals())
              File "setup.py", line 448, in <module>
                setup_package()
              File "setup.py", line 440, in setup_package
                setup(**metadata)
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/core.py", line 169, in setup
                return old_setup(**new_attr)
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 165, in setup
                return distutils.core.setup(**attrs)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/core.py", line 148, in setup
                dist.run_commands()
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/dist.py", line 966, in run_commands
                self.run_command(cmd)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/dist.py", line 985, in run_command
                cmd_obj.run()
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-build-env-vozkh5ko/overlay/lib/python3.10/site-packages/wheel/bdist_wheel.py", line 299, in run
                self.run_command('build')
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/cmd.py", line 313, in run_command
                self.distribution.run_command(command)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/dist.py", line 985, in run_command
                cmd_obj.run()
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/command/build.py", line 61, in run
                old_build.run(self)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/command/build.py", line 135, in run
                self.run_command(cmd_name)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/cmd.py", line 313, in run_command
                self.distribution.run_command(command)
              File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/distutils/dist.py", line 985, in run_command
                cmd_obj.run()
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/command/build_src.py", line 144, in run
                self.build_sources()
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/command/build_src.py", line 161, in build_sources
                self.build_extension_sources(ext)
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/command/build_src.py", line 318, in build_extension_sources
                sources = self.generate_sources(sources, ext)
              File "/private/var/folders/pq/fcm14lvx33584r8lmkkmmzfw0000gn/T/pip-install-dnxvwotj/numpy_90683b37b79642ca867de6df03c4f715/numpy/distutils/command/build_src.py", line 378, in generate_sources
                source = func(extension, build_dir)
              File "numpy/core/setup.py", line 434, in generate_config_h
                moredefs, ignored = cocache.check_types(config_cmd, ext, build_dir)
              File "numpy/core/setup.py", line 44, in check_types
                out = check_types(*a, **kw)
              File "numpy/core/setup.py", line 289, in check_types
                raise SystemError(
            SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.
            [end of output]
      
        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for numpy
      Failed to build numpy
      ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projects
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.

Steps to reproduce

  • Be on MacOS
  • Use Python 3.10
  • Run pip3 install "opencv-python-headless>=4.5.4,<4.6"
  • See error above
Issue submission checklist
  • This is not a generic OpenCV usage question (looking for help for coding, other usage questions, homework etc.)
  • I have read the README of this repository and understand that this repository provides only an automated build toolchain for OpenCV Python packages (there is no actual OpenCV code here)
  • The issue is related to the build scripts in this repository, to the pre-built binaries or is a feature request (such as "please enable this additional dependency")
  • I'm using the latest version of opencv-python
    (I am not, see issue description)

This is not a duplicate of #525 or #559 as numpy was only bumped to 1.21.2 in #556 which didn't bring Python 3.10 build wheel support to x86_64 MacOS as can clearly be seen in my log above. As well as this mention in 1.21.4 release notes:

This release also provides thin x86_64 Mac wheels for Python 3.10.

@shresthapradip
Copy link

Having same issue

@asenyaev asenyaev linked a pull request Aug 29, 2022 that will close this issue
@asenyaev
Copy link
Contributor

The change was merged into 4.x and will be available in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants