PIP-INSTALL(1)

πŸ’– hey bestie, it's PIP-INSTALL(1) time πŸ’–

okay so. this is the manual page for the pip install command β€” like, the single most iconic thing you will ever type into a terminal. it's the main character of your dev environment, fr fr. let's get into it 🫢


🌸 NAME 🌸

pip-install β€” literally just the whole description of the pip install command. that's it. that's the name. slay.


✨ DESCRIPTION ✨

bestie, pip install can pull packages in from a bunch of places. like, a whole menu:

  • PyPI (and other indexes too, iykyk) using requirement specifiers.
  • VCS project urls.
  • Local project directories.
  • Local or remote source archives.

and on top of all that, pip also supports installing from "requirements files", which are genuinely the easiest way to describe a whole entire environment that you want installed at once. one file, whole vibe, done. πŸ’…


🌈 USAGE 🌈

here's the shape of it, all five flavors:

python -m pip install [options] <requirement specifier> [package-index-options] ...
python -m pip install [options] -r <requirements file> [package-index-options] ...
python -m pip install [options] [-e] <vcs project url> ...
python -m pip install [options] [-e] <local project path> ...
python -m pip install [options] <archive url/path> ...

pick your fighter. πŸŽ€


πŸ‘‘ OPTIONS πŸ‘‘

this is the long part and honestly? every single one of these matters. no skimming, bestie.

  • -r, --requirement <file> β€” Install from the given requirements file. you can use this option multiple times if you're feeling extra. (environment variable: PIP_REQUIREMENT)
  • -c, --constraint <file> β€” Constrain versions using the given constraints file. also usable multiple times. (environment variable: PIP_CONSTRAINT)
  • --build-constraint <file> β€” Constrain build dependencies using the given constraints file. yep, multiple times again. (environment variable: PIP_BUILD_CONSTRAINT)
  • --requirements-from-script <file> β€” Install dependencies of the given script file as defined by PEP 723 inline metadata. (environment variable: PIP_REQUIREMENTS_FROM_SCRIPT)
  • --no-deps β€” Don't install package dependencies. just the one thing, nothing riding along. (environment variable: PIP_NO_DEPS, PIP_NO_DEPENDENCIES)
  • -e, --editable <path/url> β€” Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url. the classic "I'm editing this as I go" move. (environment variable: PIP_EDITABLE)
  • --dry-run β€” Don't actually install anything, just print what would be. can be used in combination with --ignore-installed to 'resolve' the requirements. window shopping, basically. (environment variable: PIP_DRY_RUN)
  • -t, --target <dir> β€” Install packages into <dir>. by default this will not replace existing files/folders in <dir>. use --upgrade to replace existing packages in <dir> with new versions. (environment variable: PIP_TARGET)
  • --platform <platform> β€” Only use wheels compatible with <platform>. defaults to the platform of the running system. use this option multiple times to specify multiple platforms supported by the target interpreter. (environment variable: PIP_PLATFORM)
  • --python-version <python_version> β€” The Python interpreter version to use for wheel and "Requires-Python" compatibility checks. defaults to a version derived from the running interpreter. you can specify it with up to three dot-separated integers (e.g. "3" for 3.0.0, "3.7" for 3.7.0, or "3.7.3"). a major-minor version can also be given as a string without dots (e.g. "37" for 3.7.0). (environment variable: PIP_PYTHON_VERSION)
  • --implementation <implementation> β€” Only use wheels compatible with Python implementation <implementation>, e.g. 'pp', 'jy', 'cp', or 'ip'. if not specified, then the current interpreter implementation is used. use 'py' to force implementation-agnostic wheels. (environment variable: PIP_IMPLEMENTATION)
  • --abi <abi> β€” Only use wheels compatible with Python abi <abi>, e.g. 'pypy_41'. if not specified, then the current interpreter abi tag is used. use this option multiple times to specify multiple abis supported by the target interpreter. generally you will need to specify --implementation, --platform, and --python-version when using this option. (environment variable: PIP_ABI)
  • --user β€” Install to the Python user install directory for your platform. typically ~/.local/, or %APPDATA%Python on Windows. (see the Python documentation for site.USER_BASE for full details.) (environment variable: PIP_USER)
  • --root <dir> β€” Install everything relative to this alternate root directory. (environment variable: PIP_ROOT)
  • --prefix <dir> β€” Installation prefix where lib, bin and other top-level folders are placed. note that the resulting installation may contain scripts and other resources which reference the Python interpreter of pip, and not that of --prefix. see also the --python option if the intention is to install packages into another (possibly pip-free) environment. (environment variable: PIP_PREFIX)
  • --src <dir> β€” Directory to check out editable projects into. the default in a virtualenv is "<venv path>/src". the default for global installs is "<current dir>/src". (environment variable: PIP_SRC, PIP_SOURCE, PIP_SOURCE_DIR, PIP_SOURCE_DIRECTORY)
  • -U, --upgrade β€” Upgrade all specified packages to the newest available version. the handling of dependencies depends on the upgrade-strategy used. (environment variable: PIP_UPGRADE)
  • --upgrade-strategy <upgrade_strategy> β€” Determines how dependency upgrading should be handled [default: only-if-needed]. "eager" β€” dependencies are upgraded regardless of whether the currently installed version satisfies the requirements of the upgraded package(s). "only-if-needed" β€” upgraded only when they do not satisfy the requirements of the upgraded package(s). (environment variable: PIP_UPGRADE_STRATEGY)
  • --force-reinstall β€” Reinstall all packages even if they are already up-to-date. (environment variable: PIP_FORCE_REINSTALL)
  • -I, --ignore-installed β€” Ignore the installed packages, overwriting them.
⚠️ bestie this one is serious β€” it can break your system if the existing package is of a different version or was installed with a different package manager! 😭

(environment variable: PIP_IGNORE_INSTALLED)

  • --ignore-requires-python β€” Ignore the Requires-Python information. (environment variable: PIP_IGNORE_REQUIRES_PYTHON)
  • --no-build-isolation β€” Disable isolation when building a modern source distribution. build dependencies specified by PEP 518 must already be installed if this option is used. (environment variable: PIP_NO_BUILD_ISOLATION)
  • --check-build-dependencies β€” Check the build dependencies. (environment variable: PIP_CHECK_BUILD_DEPENDENCIES)
  • --break-system-packages β€” Allow pip to modify an EXTERNALLY-MANAGED Python installation. (environment variable: PIP_BREAK_SYSTEM_PACKAGES)
  • -C, --config-settings <settings> β€” Configuration settings to be passed to the build backend. settings take the form KEY=VALUE. use multiple --config-settings options to pass multiple keys to the backend. (environment variable: PIP_CONFIG_SETTINGS)
  • --compile β€” Compile Python source files to bytecode. (environment variable: PIP_COMPILE)
  • --no-compile β€” Do not compile Python source files to bytecode. (environment variable: PIP_NO_COMPILE)
  • --no-warn-script-location β€” Do not warn when installing scripts outside PATH. (environment variable: PIP_NO_WARN_SCRIPT_LOCATION)
  • --no-warn-conflicts β€” Do not warn about broken dependencies. (environment variable: PIP_NO_WARN_CONFLICTS)
  • --require-hashes β€” Require a hash to check each requirement against, for repeatable installs. this option is implied when any package in a requirements file has a --hash option. (environment variable: PIP_REQUIRE_HASHES)
  • --progress-bar <progress_bar> β€” Specify whether the progress bar should be used. in 'auto' mode, --quiet will suppress all progress bars. [auto, on, off, raw] (default: auto) (environment variable: PIP_PROGRESS_BAR)
  • --root-user-action <root_user_action> β€” Action if pip is run as a root user [warn, ignore] (default: warn) (environment variable: PIP_ROOT_USER_ACTION)
  • --report <file> β€” Generate a JSON file describing what pip did to install the provided requirements. can be used in combination with --dry-run and --ignore-installed to 'resolve' the requirements. when - is used as file name it writes to stdout. when writing to stdout, please combine with the --quiet option to avoid mixing pip logging output with JSON output. (environment variable: PIP_REPORT)
  • --group <[path:]group> β€” Install a named dependency-group from a "pyproject.toml" file. if a path is given, the name of the file must be "pyproject.toml". defaults to using "pyproject.toml" in the current directory. (environment variable: PIP_GROUP)
  • --no-clean β€” Don't clean up build directories. (environment variable: PIP_NO_CLEAN)

πŸ¦‹ Author πŸ¦‹

pip developers β€” the collective, the icon, the legend. 🫢


The pip developers.


and that's the whole page bestie!! ✨ this was PIP-INSTALL(1), version 26.0, dated Aug 26, 2026, from the fine folks at pip. go install something cute, and remember: read the flags before you break your system. mwah πŸ’…πŸŽ€πŸ’–

πŸ“¦ where this page comes from
  • fedora 44: python3-pip 26.0.1-3.fc44 Β· MIT AND Python-2.0.1 AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MPL-2.0 AND (Apache-2.0 OR BSD-2-Clause)
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms