Python 2.7 installing opencv via pip (virtual environment)

33,785

Python 2.7 is not supported anymore in opencv-python-4.3.0.38. Support was dropped in 4.3.0.36; see this issue.

The workaround I found was to install opencv-python version 4.2.0.32 (which is the latest supported for Python 2.7, see this for all releases) like this:

pip2 install opencv-python==4.2.0.32
Share:
33,785
forqed
Author by

forqed

Updated on July 09, 2022

Comments

  • forqed
    forqed almost 2 years

    I'm trying to install opencv-python package via pip inside virtual environment (Python 2.7). Unfortunately, I'm getting an error:

    (venv) $ pip2 install opencv-python
    DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
    Collecting opencv-python
      Using cached opencv-python-4.3.0.38.tar.gz (88.0 MB)
      Installing build dependencies ... done
      Getting requirements to build wheel ... error
      ERROR: Command errored out with exit status 1:
       command: /home/pc_user/.venvs/venv/bin/python /home/pc_user/.venvs/venv/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp7q7z4L
           cwd: /tmp/pip-install-C21PKF/opencv-python
      Complete output (22 lines):
      Traceback (most recent call last):
        File "/home/pc_user/.venvs/venv/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
          main()
        File "/home/pc_user/.venvs/venv/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/pc_user/.venvs/venv/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py", line 114, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-2FzygL/overlay/lib/python2.7/site-packages/setuptools/build_meta.py", line 146, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-2FzygL/overlay/lib/python2.7/site-packages/setuptools/build_meta.py", line 127, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-2FzygL/overlay/lib/python2.7/site-packages/setuptools/build_meta.py", line 243, in run_setup
          self).run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-2FzygL/overlay/lib/python2.7/site-packages/setuptools/build_meta.py", line 142, in run_setup
          exec(compile(code, __file__, 'exec'), locals())
        File "setup.py", line 448, in <module>
          main()
        File "setup.py", line 99, in main
          % {"ext": re.escape(sysconfig.get_config_var("EXT_SUFFIX"))}
        File "/usr/lib/python2.7/re.py", line 210, in escape
          s = list(pattern)
      TypeError: 'NoneType' object is not iterable
      ----------------------------------------
    ERROR: Command errored out with exit status 1: /home/pc_user/.venvs/venv/bin/python /home/pc_user/.venvs/venv/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp7q7z4L Check the logs for full command output.
    

    I've tried to create a new environment or installing through python2 -m pip install but the effect is the same. What's the problem?

  • jtlz2
    jtlz2 over 3 years
    This works for opencv-python-headless too of course