opencv / opencv/opencv-python

Compile or Crosscompile opencv-python for armv7

Open
#793 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Python
Stars
5.4k
Forks
1k
Avg merge
22h 17m
Merged PRs (30d)
3

Description

Expected behaviour

I am trying to follow the instructions to build wheels for an armv7 device.

Actual behaviour

The build fails at the stage of building wheels for cmake

#47 876.8     Building wheel for cmake (pyproject.toml): started
#47 878.1     Building wheel for cmake (pyproject.toml): finished with status 'error'
#47 878.2     error: subprocess-exited-with-error
#47 878.2 
#47 878.2     × Building wheel for cmake (pyproject.toml) did not run successfully.
#47 878.2     │ exit code: 1
#47 878.2     ╰─> [33 lines of output]
#47 878.2         Traceback (most recent call last):
#47 878.2           File "/tmp/pip-build-env-1v0hi9i5/overlay/local/lib/python3.10/dist-packages/skbuild/setuptools_wrap.py", line 621, in setup
#47 878.2             cmkr = cmaker.CMaker(cmake_executable)
#47 878.2           File "/tmp/pip-build-env-1v0hi9i5/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 151, in __init__
#47 878.2             self.cmake_version = get_cmake_version(self.cmake_executable)
#47 878.2           File "/tmp/pip-build-env-1v0hi9i5/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 106, in get_cmake_version
#47 878.2             raise SKBuildError(
#47 878.2 
#47 878.2 
#47 878.2             =============================DEBUG ASSISTANCE=============================
#47 878.2             If you are seeing a compilation error please try the following steps to
#47 878.2             successfully install cmake:
#47 878.2             1) Upgrade to the latest pip and try again. This will fix errors for most
#47 878.2                users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
#47 878.2             2) If on Linux, with glibc < 2.12, you can set PIP_ONLY_BINARY=cmake in
#47 878.2                order to retrieve the last manylinux1 compatible wheel.
#47 878.2             3) If on Linux, with glibc < 2.12, you can cap "cmake<3.23" in your
#47 878.2                requirements in order to retrieve the last manylinux1 compatible wheel.
#47 878.2             4) Open an issue with the debug information that follows at
#47 878.2                https://github.com/scikit-build/cmake-python-distributions/issues
#47 878.2 
#47 878.2             Python: 3.10.6
#47 878.2             platform: Linux-5.15.0-57-generic-armv7l-with-glibc2.35
#47 878.2             glibc: glibc 2.35
#47 878.2             machine: armv7l
#47 878.2             bits: 32
#47 878.2             pip: 22.0.2
#47 878.2             setuptools: 59.6.0
#47 878.2             scikit-build: 0.16.6
#47 878.2             PEP517_BUILD_BACKEND=setuptools.build_meta
#47 878.2             =============================DEBUG ASSISTANCE=============================
#47 878.2 
#47 878.2         Problem with the CMake installation, aborting build. CMake executable is cmake
#47 878.2         [end of output]
#47 878.2 
#47 878.2     note: This error originates from a subprocess, and is likely not a problem with pip.
#47 878.2     ERROR: Failed building wheel for cmake
#47 878.2   Successfully built numpy
#47 878.2   Failed to build cmake
#47 878.2   ERROR: Could not build wheels for cmake, which is required to install pyproject.toml-based projects
#47 878.7   error: subprocess-exited-with-error
#47 878.7   
#47 878.7   × pip subprocess to install build dependencies did not run successfully.
#47 878.7   │ exit code: 1
#47 878.7   ╰─> See above for output.
#47 878.7   
#47 878.7   note: This error originates from a subprocess, and is likely not a problem with pip.
#47 878.7   full command: /usr/bin/python3 /tmp/pip-standalone-pip-9zhxus_5/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-szb9nqwx/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools==59.2.0 wheel==0.37.0 'cmake>=3.1' pip 'scikit-build>=0.13.2' 'numpy==1.13.3; python_version=='"'"'3.6'"'"' and platform_machine != '"'"'aarch64'"'"' and platform_machine != '"'"'arm64'"'"'' 'numpy==1.17.0; python_version=='"'"'3.7'"'"' and platform_machine != '"'"'aarch64'"'"' and platform_machine != '"'"'arm64'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine != '"'"'aarch64'"'"' and platform_machine != '"'"'arm64'"'"'' 'numpy==1.19.3; python_version<='"'"'3.9'"'"' and sys_platform == '"'"'linux'"'"' and platform_machine == '"'"'aarch64'"'"'' 'numpy==1.21.0; python_version<='"'"'3.9'"'"' and sys_platform == '"'"'darwin'"'"' and platform_machine == '"'"'arm64'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_machine != '"'"'aarch64'"'"' and platform_machine != '"'"'arm64'"'"'' 'numpy==1.21.2; python_version>='"'"'3.10'"'"' and platform_system!='"'"'Darwin'"'"'' 'numpy==1.21.4; python_version>='"'"'3.10'"'"' and platform_system=='"'"'Darwin'"'"''
#47 878.7   cwd: [inherit]
#47 878.7   Installing build dependencies: finished with status 'error'
#47 878.7 error: subprocess-exited-with-error
#47 878.7 
#47 878.7 × pip subprocess to install build dependencies did not run successfully.
#47 878.7 │ exit code: 1
#47 878.7 ╰─> See above for output.
#47 878.7 
#47 878.7 note: This error originates from a subprocess, and is likely not a problem with pip.

Do you have any suggestions on how to build wheels for armv7?

Steps to reproduce
Issue submission checklist
  • [x ] This is not a generic OpenCV usage question (looking for help for coding, other usage questions, homework etc.)

  • [x ] 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)

  • [x ] 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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the manual-build instructions and the linked Dockerfile-opencv2-armv7hf.txt, then reproduce the reported failure during cmake wheel installation using the supplied Python, Ubuntu, and armv7 details. Done would mean identifying a repository build-toolchain change or documented procedure that successfully builds an armv7 wheel.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, python, ubuntu
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.