How to reinstall a pip package even if it exists

With --force-reinstall, existing packages (and dependencies) are uninstalled first, while with --ignore-installed, they are not.

So --force-reinstall is the preferred choice and --ignore-installed is more of an emergency option.

Here's a sample output:

> pip install --force-reinstall ipdb
Collecting ipdb
Collecting ipython<6.0.0,>=5.0.0; python_version == "2.7" (from ipdb)
  Using cached https://<...>/ipython-5.8.0-py2-none-any.whl
Collecting setuptools (from ipdb)
<...>
Installing collected packages: six, wcwidth, prompt-toolkit, decorator, setuptools, <...>
  Found existing installation: six 1.11.0
    Uninstalling six-1.11.0:
      Successfully uninstalled six-1.11.0
  Found existing installation: wcwidth 0.1.7
    Uninstalling wcwidth-0.1.7:
      Successfully uninstalled wcwidth-0.1.7
<...>
Successfully installed backports.shutil-get-terminal-size-1.0.0 colorama-0.4.0 <...>


> pip install --ignore-installed ipdb
Collecting ipdb
Collecting ipython<6.0.0,>=5.0.0; python_version == "2.7" (from ipdb)
<...>
Collecting setuptools (from ipdb)
<...>
Installing collected packages: six, wcwidth, prompt-toolkit, decorator, setuptools, <...>
Successfully installed <...>

You want:

pip install -r requirements.txt --upgrade --force-reinstall

--force-reinstall will remove the existing packages and then install the current versions.

--ignore-installed will just overwrite the existing with the current version, but will not remove files that were deleted in the update, meaning you may have files hanging out in your library install that aren't part of the library.

--upgrade (redundant in this case), does force-reinstall for only those packages for which there is a new version.

Tags:

Python

Pip