pythonpippipenv

Command "python setup.py egg_info" failed with error code 1 in /tmp/..../


I got the following error installing a dependency with pip:

pip9.exceptions.InstallationError Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpoons7qgkbuild/opencv-python/

Below is the result of running the command pipenv install opencv-python on a recent linux (5.4.0 x64) system.

Locking [packages] dependencies…
self.repository.get_dependencies(ireq):
  File "/usr/lib/python3/dist-packages/pipenv/patched/piptools/repositories/pypi.py", line 174, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/lib/python3/dist-packages/pipenv/patched/piptools/repositories/pypi.py", line 222, in get_legacy_dependencies
    result = reqset._prepare_file(self.finder, ireq, ignore_requires_python=True)
  File "/usr/lib/python3/dist-packages/pipenv/patched/notpip/req/req_set.py", line 644, in _prepare_file
    abstract_dist.prep_for_dist()
  File "/usr/lib/python3/dist-packages/pipenv/patched/notpip/req/req_set.py", line 134, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/usr/lib/python3/dist-packages/pipenv/vendor/pip9/req/req_install.py", line 435, in run_egg_info
    call_subprocess(
  File "/usr/lib/python3/dist-packages/pipenv/vendor/pip9/utils/__init__.py", line 705, in call_subprocess
    raise InstallationError(
pip9.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpoons7qgkbuild/opencv-python/

Solution

  • How to fix the pip9.exceptions.InstallationError

    Make sure the version of your pip and setuptools is sufficient for manylinux2014 wheels.

    A) System Install

    sudo python3 -m pip install -U pip
    sudo python3 -m pip install -U setuptools
    

    B) Virtual Env / Pipenv

    # Within the venv
    pip3 install -U pip
    pip3 install -U setuptools
    

    Explanation

    For me, python setup.py egg_info probably failed because of a recent change in python wheels, as manylinux1 wheels were replaced by manylinux2014 wheels according to open-cv faq.