添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly

Ask Question

I was trying to install OpenCV4 in a docker on jetson nano. It has jetpack 4.4 s os. The docker was successfully created and Tensorflow is running but while installing OpenCV using pip it is showing CMake error.

root@5abf405fb92d:~# pip3 install opencv-python
Collecting opencv-python
  Downloading opencv-python-4.4.0.42.tar.gz (88.9 MB)
     |████████████████████████████████| 88.9 MB 2.5 kB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/dist-packages (from opencv-python) (1.18.4)
Building wheels for collected packages: opencv-python
  Building wheel for opencv-python (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /usr/local/lib/python3.6/dist-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpqpzwrofy
       cwd: /tmp/pip-install-93nxibky/opencv-python
  Complete output (9 lines):
    File "/tmp/pip-build-env-o_hualnr/overlay/lib/python3.6/site-packages/skbuild/setuptools_wrap.py", line 560, in setup
      cmkr = cmaker.CMaker(cmake_executable)
    File "/tmp/pip-build-env-o_hualnr/overlay/lib/python3.6/site-packages/skbuild/cmaker.py", line 95, in __init__
      self.cmake_version = get_cmake_version(self.cmake_executable)
    File "/tmp/pip-build-env-o_hualnr/overlay/lib/python3.6/site-packages/skbuild/cmaker.py", line 82, in get_cmake_version
      "Problem with the CMake installation, aborting build. CMake executable is %s" % cmake_executable)
  Traceback (most recent call last):
  Problem with the CMake installation, aborting build. CMake executable is cmake
  ----------------------------------------
  ERROR: Failed building wheel for opencv-python
Failed to build opencv-python
ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
                this answer, should be placed above. at the top! Solves the problem instantly on Windows.
– Muneeb Ahmad Khurram
                Apr 5, 2022 at 1:46

you still have the same error,

You can try to specify the older version of OpenCV to install.

pip3 install opencv-python==3.4.13.47
                I can verify this. With Python 3.6: pip install opencv-python tried to install 4.7.0.68 but failed in the manner indicated above even after upgrading pip, setuptools and wheel. However, pip install opencv-python==4.5.5.64 worked. Exactly as indicated in this answer. It works right out of the box for Python >= 3.7 but I need to use 3.6 and opencv still supports it.
– Trilarion
                Jan 13 at 18:56

Yes .. Finally found a work around. Follow this https://github.com/mdegans/nano_build_opencv and build from source and finally gets installed.

PS: It may take a bit long for building, for me it took 10 Hrs :P.

Happy Image-Processing..

Hi, thanks for sharing. I am hitting the same error, the numpy with parameter --platform linux/arm/v7 on last night build which took 11 hours and it was still not finished. – yw173 Dec 9, 2021 at 1:09

I had a similar problem and what solved it for me was not to use python:3-alpine but python:3.8-slim. E.g.:

FROM python:3.8-slim
WORKDIR /usr/src/app
RUN apt update
RUN apt -y install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
RUN apt-get update -qq \
    && apt-get install --no-install-recommends --yes \
        build-essential \
        gcc \
        python3-dev \
        mosquitto \
        mosquitto-clients
RUN pip3 install --upgrade pip setuptools wheel
RUN python3 -m pip install --no-cache-dir \
      numpy scipy matplotlib scikit-build opencv-contrib-python-headless \
      influxdb paho-mqtt configparser Pillow \
      qrcode

worked finally for me.

Failed to build opencv-python ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly WARNING: You are using pip version 19.2.3, however version 22.0.4 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.

I ran in command prompt with admin privileges following
python -m pip install --upgrade pip
Now "pip install opencv-python" works

I handled it by reinstalling python3 from scratch in my MacBook:

brew reinstall [email protected]

I also reinstalled numpy and matplotlib packages experimentally.

pip3 install numpy
pip3 install matplotlib 
pip3 install opencv-contrib-python

The versions:

macOS Mojave 10.14.5
Python 3.9.7
OpenCV 4.5.3

OpenCV's version is 4.5.3 by this way:

import cv2 
print(cv2.__version__)

But by "pip list", it shows "opencv-contrib-python 3.4.9.31".

if you are trying to install opencv in your raspberrypi 3B, Use following steps:

  • sudo raspi-config
  • advanced -- expand filesystem
  • reboot your pi
  • Open your raspi terminal and do following stuff:

  • use command: sudo apt-get update
  • use command: sudo apt-get upgrade
  • check your python version and upgarde it to latest one
  • install pip and upgrade pip
  • use command: mkdir project
  • use command: cd project
  • create virtual environment
  • activate virtual environment
  • install dependencies ,can get dependencies from https://singleboardbytes.com/647/install-opencv-raspberry-pi-4.htm
  • if error in installing libdhf5-dev
  • use command: sudo apt-get install python3-h5py and reinstall libdhf5-dev
  • use command: pip install scikit-build
  • use command: pip install cython
  • before installing opencv ,make sure you are in virtual environment or activate environment
  • use command: pip install --no-cache-dir opencv-contrib-python==4.5.3.56
  • Remember to use mentioned version...
  • Thank You...

    This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review – buhtz Apr 21, 2022 at 8:13

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.