Skip to content

How to resolve Requirement already satisfied when pip install conan

1. The purpose of this post

This post demonstrates how to resolve the “Requirement already satisfied” error when installing Conan using pip.

Terminal window
pip install conan
...
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/python3/lib/python3.7/site-packages (from requests<3.0.0,>=2.8.1->conan) (1.25.3)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/python3/lib/python3.7/site-packages (from requests<3.0.0,>=2.8.1->conan) (2.8)
Requirement already satisfied: monotonic>=0.1 in /usr/local/python3/lib/python3.7/site-packages (from fasteners>=0.14.1->conan) (1.5)
Requirement already satisfied: isort<5,>=4.2.5 in /usr/local/python3/lib/python3.7/site-packages (from pylint!=2.3.0,>=1.9.3->conan) (4.3.21)
Requirement already satisfied: mccabe<0.7,>=0.6 in /usr/local/python3/lib/python3.7/site-packages (from pylint!=2.3.0,>=1.9.3->conan) (0.6.1)
Requirement already satisfied: typed-ast>=1.3.0; implementation_name == "cpython" in /usr/local/python3/lib/python3.7/site-packages (from astroid>=1.6.5->conan) (1.4.0)
Requirement already satisfied: lazy-object-proxy in /usr/local/python3/lib/python3.7/site-packages (from astroid>=1.6.5->conan) (1.4.2)
Requirement already satisfied: wrapt in /usr/local/python3/lib/python3.7/site-packages (from astroid>=1.6.5->conan) (1.11.2)
Requirement already satisfied: packaging in /usr/local/python3/lib/python3.7/site-packages (from deprecation<2.1,>=2.0->conan) (19.1)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/python3/lib/python3.7/site-packages (from Jinja2<3,>=2.3->conan) (1.1.1)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/python3/lib/python3.7/site-packages (from packaging->deprecation<2.1,>=2.0->conan) (2.4.2)
Requirement already satisfied: attrs in /usr/local/python3/lib/python3.7/site-packages (from packaging->deprecation<2.1,>=2.0->conan) (19.1.0)

2. Environments

  • Python 3.7 system default

3. Solution and Code

Try running pip with --target to specify the Python site-packages directory.

install_conan.sh
pip install --target=/usr/local/python3/lib/python3.7/site-packages conan

If you still get the following error:

warning_output.txt
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/Jinja2-2.10.1.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/dateutil already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/python_dateutil-2.8.0.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/bottle.py already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/bottle-0.12.17.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/pluginbase.py already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/pluginbase-0.7-py3.7.egg-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/conans already exists. Specify --upgrade to force replacement.
WARNING: Target directory /usr/local/python3/lib/python3.7/site-packages/conan-1.18.2-py3.7.egg-info already exists. Specify --upgrade to force replacement.

You can run pip install as follows:

install_conan_with_upgrade.sh
pip install --target=/usr/local/python3/lib/python3.7/site-packages --upgrade conan

You would get this:

success_output.txt
Running setup.py install for PyYAML ... done
Running setup.py install for patch ... done
Running setup.py install for wrapt ... done
Running setup.py install for future ... done
Running setup.py install for pluginbase ... done
Running setup.py install for conan ... done
Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 PyJWT-1.7.1 PyYAML-5.1.2 astroid-2.2.5 attrs-19.1.0 bottle-0.12.17 certifi-2019.6.16 chardet-3.0.4 colorama-0.4.1 conan-1.18.2 deprecation-2.0.7 distro-1.1.0 fasteners-0.15 future-0.16.0 idna-2.8 isort-4.3.21 lazy-object-proxy-1.4.2 mccabe-0.6.1 monotonic-1.5 node-semver-0.6.1 packaging-19.1 patch-1.16 pluginbase-0.7 pygments-2.4.2 pylint-2.3.1 pyparsing-2.4.2 python-dateutil-2.8.0 requests-2.22.0 six-1.12.0 tqdm-4.35.0 typed-ast-1.4.0 urllib3-1.25.3 wrapt-1.11.2

4. Summary

In this post, we explored how to resolve the “Requirement already satisfied” error when installing Conan using pip. By specifying the target directory with the --target flag and using the --upgrade flag, you can ensure that the installation process completes successfully. This approach is particularly useful when dealing with existing package installations that may cause conflicts.

Final Words + More Resources

My intention with this article was to help others who might be considering solving such a problem. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask me by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!