D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
blackhat.pw
:
/
kunden
/
kunden
/
proc
/
thread-self
/
root
/
usr
/
share
/
doc
/
python3-pip
/
html
/
topics
/
Filename :
authentication.html
back
Copy
<!doctype html> <html class="no-js" lang="en" data-content_root="../"> <head><meta charset="utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1"/> <meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="search" title="Search" href="../search.html" /><link rel="copyright" title="Copyright" href="../copyright.html" /><link rel="next" title="Caching" href="caching.html" /><link rel="prev" title="Topic Guides" href="index.html" /> <!-- Generated with Sphinx 8.1.3 and Furo 2024.08.06 --> <title>Authentication - pip documentation v25.1.1</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=ad9e2e31" /> <link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" /> <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=4c969af8" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=4aa03575" /> <style> body { --color-code-background: #f8f8f8; --color-code-foreground: black; } @media not print { body[data-theme="dark"] { --color-code-background: #202020; --color-code-foreground: #d0d0d0; } @media (prefers-color-scheme: dark) { body:not([data-theme="light"]) { --color-code-background: #202020; --color-code-foreground: #d0d0d0; } } } </style></head> <body> <script> document.body.dataset.theme = localStorage.getItem("theme") || "auto"; </script> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-toc" viewBox="0 0 24 24"> <title>Contents</title> <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024"> <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24"> <title>Light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24"> <title>Dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" /> </svg> </symbol> <symbol id="svg-sun-with-moon" viewBox="0 0 24 24"> <title>Auto light/dark, in light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/> <line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/> <line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/> <line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/> <line x1="19" y1="14.05" x2="20.414" y2="15.464"/> <line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/> <line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/> <line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/> <line x1="19" y1="5.05" x2="20.414" y2="3.636"/> <circle cx="14.5" cy="9.55" r="3.6"/> </svg> </symbol> <symbol id="svg-moon-with-sun" viewBox="0 0 24 24"> <title>Auto light/dark, in dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/> <line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/> <line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/> <line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/> <line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/> <line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/> <line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/> <line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/> <line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/> <circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/> </svg> </symbol> <symbol id="svg-pencil" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code"> <path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M13.5 6.5l4 4" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> <symbol id="svg-eye" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /> <path d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> </svg> <input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation"> <input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc"> <label class="overlay sidebar-overlay" for="__navigation"> <div class="visually-hidden">Hide navigation sidebar</div> </label> <label class="overlay toc-overlay" for="__toc"> <div class="visually-hidden">Hide table of contents sidebar</div> </label> <a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a> <div class="page"> <header class="mobile-header"> <div class="header-left"> <label class="nav-overlay-icon" for="__navigation"> <div class="visually-hidden">Toggle site navigation sidebar</div> <i class="icon"><svg><use href="#svg-menu"></use></svg></i> </label> </div> <div class="header-center"> <a href="../index.html"><div class="brand">pip documentation v25.1.1</div></a> </div> <div class="header-right"> <div class="theme-toggle-container theme-toggle-header"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-header-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> </header> <aside class="sidebar-drawer"> <div class="sidebar-container"> <div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html"> <span class="sidebar-brand-text">pip documentation v25.1.1</span> </a><form class="sidebar-search-container" method="get" action="../search.html" role="search"> <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search"> <input type="hidden" name="check_keywords" value="yes"> <input type="hidden" name="area" value="default"> </form> <div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree"> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../getting-started.html">Getting Started</a></li> <li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="../user_guide.html">User Guide</a></li> <li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Topic Guides</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Topic Guides</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current"> <li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Authentication</a></li> <li class="toctree-l2"><a class="reference internal" href="caching.html">Caching</a></li> <li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li> <li class="toctree-l2"><a class="reference internal" href="dependency-resolution.html">Dependency Resolution</a></li> <li class="toctree-l2"><a class="reference internal" href="more-dependency-resolution.html">More on Dependency Resolution</a></li> <li class="toctree-l2"><a class="reference internal" href="https-certificates.html">HTTPS Certificates</a></li> <li class="toctree-l2"><a class="reference internal" href="local-project-installs.html">Local project installs</a></li> <li class="toctree-l2"><a class="reference internal" href="repeatable-installs.html">Repeatable Installs</a></li> <li class="toctree-l2"><a class="reference internal" href="secure-installs.html">Secure installs</a></li> <li class="toctree-l2"><a class="reference internal" href="vcs-support.html">VCS Support</a></li> <li class="toctree-l2"><a class="reference internal" href="python-option.html">Managing a different Python interpreter</a></li> <li class="toctree-l2"><a class="reference internal" href="workflow.html">Pip is not a workflow management tool</a></li> </ul> </li> <li class="toctree-l1 has-children"><a class="reference internal" href="../reference/index.html">Reference</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Reference</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2 has-children"><a class="reference internal" href="../reference/build-system/index.html">Build System Interface</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle navigation of Build System Interface</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../reference/build-system/pyproject-toml.html"><code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code></a></li> <li class="toctree-l3"><a class="reference internal" href="../reference/build-system/setup-py.html"><code class="docutils literal notranslate"><span class="pre">setup.py</span></code> (legacy)</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../reference/requirement-specifiers.html">Requirement Specifiers</a></li> <li class="toctree-l2"><a class="reference internal" href="../reference/requirements-file-format.html">Requirements File Format</a></li> <li class="toctree-l2"><a class="reference internal" href="../reference/installation-report.html">Installation Report</a></li> <li class="toctree-l2"><a class="reference internal" href="../reference/inspect-report.html"><code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">inspect</span></code> JSON output specification</a></li> </ul> </li> <li class="toctree-l1 has-children"><a class="reference internal" href="../cli/index.html">Commands</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle navigation of Commands</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="../cli/pip.html">pip</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_install.html">pip install</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_uninstall.html">pip uninstall</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_inspect.html">pip inspect</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_list.html">pip list</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_show.html">pip show</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_freeze.html">pip freeze</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_check.html">pip check</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_lock.html">pip lock</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_download.html">pip download</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_wheel.html">pip wheel</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_hash.html">pip hash</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_search.html">pip search</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_index.html">pip index</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_cache.html">pip cache</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_config.html">pip config</a></li> <li class="toctree-l2"><a class="reference internal" href="../cli/pip_debug.html">pip debug</a></li> </ul> </li> </ul> <p class="caption" role="heading"><span class="caption-text">Project</span></p> <ul> <li class="toctree-l1 has-children"><a class="reference internal" href="../development/index.html">Development</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle navigation of Development</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="../development/getting-started.html">Getting Started</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/contributing.html">Contributing</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/ci.html">Continuous Integration</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/issue-triage.html">Issue Triage</a></li> <li class="toctree-l2 has-children"><a class="reference internal" href="../development/architecture/index.html">Architecture of pip’s internals</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle navigation of Architecture of pip’s internals</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/overview.html">Broad functionality overview</a></li> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/anatomy.html">Repository anatomy & directory structure</a></li> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/configuration-files.html">Configuration File Handling</a></li> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/package-finding.html">Finding and choosing files (<code class="docutils literal notranslate"><span class="pre">index</span></code> and <code class="docutils literal notranslate"><span class="pre">PackageFinder</span></code>)</a></li> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/command-line-interface.html">Command Line Interface</a></li> <li class="toctree-l3"><a class="reference internal" href="../development/architecture/upgrade-options.html">Options that control the installation process</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../development/release-process.html">Release process</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/vendoring-policy.html">Vendoring Policy</a></li> </ul> </li> <li class="toctree-l1 has-children"><a class="reference internal" href="../ux-research-design/index.html">UX Research & Design</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle navigation of UX Research & Design</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="../ux-research-design/contribute.html">How to Contribute</a></li> <li class="toctree-l2"><a class="reference internal" href="../ux-research-design/guidance.html">UX Guidance</a></li> <li class="toctree-l2 has-children"><a class="reference internal" href="../ux-research-design/research-results/index.html">UX Research Results</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle navigation of UX Research Results</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/about-our-users.html">About pip’s Users</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/mental-models.html">How Users Understand pip</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/users-and-security.html">How pip users think about security</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/ci-cd.html">How pip is used in interactive environments (i.e. CI, CD)</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/personas.html">pip Personas</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/prioritizing-features.html">Prioritizing pip Features</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/override-conflicting-dependencies.html">Providing an override to install packages with conflicting dependencies</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/pip-force-reinstall.html">pip --force-reinstall</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/pip-search.html">pip search</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/pip-upgrade-conflict.html">pip Upgrade Conflict</a></li> <li class="toctree-l3"><a class="reference internal" href="../ux-research-design/research-results/improving-pips-documentation.html">Improving pip’s Documentation</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../news.html">Changelog</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/pypa/pip">GitHub</a></li> </ul> </div> </div> </div> </div> </aside> <div class="main"> <div class="content"> <div class="article-container"> <a href="#" class="back-to-top muted-link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path> </svg> <span>Back to top</span> </a> <div class="content-icon-container"> <div class="view-this-page"> <a class="muted-link" href="../_sources/topics/authentication.md.txt" title="View this page"> <svg><use href="#svg-eye"></use></svg> <span class="visually-hidden">View this page</span> </a> </div> <div class="theme-toggle-container theme-toggle-content"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-content-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> <article role="main" id="furo-main-content"> <section id="authentication"> <h1>Authentication<a class="headerlink" href="#authentication" title="Link to this heading">¶</a></h1> <section id="basic-http-authentication"> <h2>Basic HTTP authentication<a class="headerlink" href="#basic-http-authentication" title="Link to this heading">¶</a></h2> <p>pip supports basic HTTP-based authentication credentials. This is done by providing the username (and optionally password) in the URL:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">username</span><span class="p">:</span><span class="n">password</span><span class="nd">@pypi</span><span class="o">.</span><span class="n">company</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">simple</span> </pre></div> </div> <p>For indexes that only require single-part authentication tokens, provide the token as the “username” and do not provide a password:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="mi">0123456789</span><span class="n">abcdef</span><span class="nd">@pypi</span><span class="o">.</span><span class="n">company</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">simple</span> </pre></div> </div> <section id="percent-encoding-special-characters"> <h3>Percent-encoding special characters<a class="headerlink" href="#percent-encoding-special-characters" title="Link to this heading">¶</a></h3> <div class="versionadded"> <p><span class="versionmodified added">Added in version 10.0.</span></p> </div> <p>Certain special characters are not valid in the credential part of a URL. If the user or password part of your login credentials contain any of these <a class="reference external" href="https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters">special characters</a>, then they must be percent-encoded. As an example, for a user with username <code class="docutils literal notranslate"><span class="pre">user</span></code> and password <code class="docutils literal notranslate"><span class="pre">he//o</span></code> accessing a repository at <code class="docutils literal notranslate"><span class="pre">pypi.company.com/simple</span></code>, the URL with credentials would look like:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="n">he</span><span class="o">%</span><span class="mi">2</span><span class="n">F</span><span class="o">%</span><span class="mi">2</span><span class="n">Fo</span><span class="nd">@pypi</span><span class="o">.</span><span class="n">company</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">simple</span> </pre></div> </div> </section> </section> <section id="netrc-support"> <h2>netrc support<a class="headerlink" href="#netrc-support" title="Link to this heading">¶</a></h2> <p>pip supports loading credentials from a user’s <code class="docutils literal notranslate"><span class="pre">.netrc</span></code> file. If no credentials are part of the URL, pip will attempt to get authentication credentials for the URL’s hostname from the user’s <code class="docutils literal notranslate"><span class="pre">.netrc</span></code> file. This behaviour comes from the underlying use of <a class="reference external" href="https://pypi.org/project/requests">requests</a>, which in turn delegates it to the <a class="reference external" href="https://docs.python.org/3/library/netrc.html">Python standard library’s <code class="docutils literal notranslate"><span class="pre">netrc</span></code> module</a>.</p> <div class="admonition note"> <p class="admonition-title">Note</p> <p>As mentioned in the <a class="reference external" href="https://docs.python.org/3/library/netrc.html">standard library documentation for netrc</a>, only ASCII characters are allowed in <code class="docutils literal notranslate"><span class="pre">.netrc</span></code> files. Whitespace and non-printable characters are not allowed in passwords.</p> </div> <p>Below is an example <code class="docutils literal notranslate"><span class="pre">.netrc</span></code>, for the host <code class="docutils literal notranslate"><span class="pre">example.com</span></code>, with a user named <code class="docutils literal notranslate"><span class="pre">daniel</span></code>, using the password <code class="docutils literal notranslate"><span class="pre">qwerty</span></code>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">machine</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span> <span class="n">login</span> <span class="n">daniel</span> <span class="n">password</span> <span class="n">qwerty</span> </pre></div> </div> <p>More information about the <code class="docutils literal notranslate"><span class="pre">.netrc</span></code> file format can be found in the GNU <a class="reference external" href="https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html"><code class="docutils literal notranslate"><span class="pre">ftp</span></code> man pages</a>.</p> </section> <section id="keyring-support"> <h2>Keyring Support<a class="headerlink" href="#keyring-support" title="Link to this heading">¶</a></h2> <p>pip supports loading credentials stored in your keyring using the <a class="reference external" href="https://pypi.org/project/keyring">keyring</a> library, which can be enabled py passing <code class="docutils literal notranslate"><span class="pre">--keyring-provider</span></code> with a value of <code class="docutils literal notranslate"><span class="pre">auto</span></code>, <code class="docutils literal notranslate"><span class="pre">disabled</span></code>, <code class="docutils literal notranslate"><span class="pre">import</span></code>, or <code class="docutils literal notranslate"><span class="pre">subprocess</span></code>. The default value <code class="docutils literal notranslate"><span class="pre">auto</span></code> respects <code class="docutils literal notranslate"><span class="pre">--no-input</span></code> and does not query keyring at all if the option is used; otherwise it tries the <code class="docutils literal notranslate"><span class="pre">import</span></code>, <code class="docutils literal notranslate"><span class="pre">subprocess</span></code>, and <code class="docutils literal notranslate"><span class="pre">disabled</span></code> providers (in this order) and uses the first one that works.</p> <section id="configuring-pip-s-keyring-usage"> <h3>Configuring pip’s keyring usage<a class="headerlink" href="#configuring-pip-s-keyring-usage" title="Link to this heading">¶</a></h3> <p>Since the keyring configuration is likely system-wide, a more common way to configure its usage would be to use a configuration instead:</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="configuration.html"><span class="doc">Configuration</span></a> describes how pip configuration works.</p> </div> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>pip<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--global<span class="w"> </span>global.keyring-provider<span class="w"> </span>subprocess <span class="c1"># A different user on the same system which has PYTHONPATH configured and and</span> <span class="c1"># wanting to use keyring installed that way could then run</span> $<span class="w"> </span>pip<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--user<span class="w"> </span>global.keyring-provider<span class="w"> </span>import <span class="c1"># For a specific virtual environment you might want to use disable it again</span> <span class="c1"># because you will only be using PyPI and the private repo (and mirror)</span> <span class="c1"># requires 2FA with a keycard and a pincode</span> $<span class="w"> </span>pip<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--site<span class="w"> </span>global.index<span class="w"> </span>https://pypi.org/simple $<span class="w"> </span>pip<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>--site<span class="w"> </span>global.keyring-provider<span class="w"> </span>disabled <span class="c1"># configuring it via environment variable is also possible</span> $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><span class="nv">PIP_KEYRING_PROVIDER</span><span class="o">=</span>disabled </pre></div> </div> </section> <section id="using-keyring-s-python-module"> <h3>Using keyring’s Python module<a class="headerlink" href="#using-keyring-s-python-module" title="Link to this heading">¶</a></h3> <p>Setting <code class="docutils literal notranslate"><span class="pre">keyring-provider</span></code> to <code class="docutils literal notranslate"><span class="pre">import</span></code> makes pip communicate with <code class="docutils literal notranslate"><span class="pre">keyring</span></code> via its Python interface.</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># install keyring from PyPI</span> $<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>keyring<span class="w"> </span>--index-url<span class="w"> </span>https://pypi.org/simple $<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"your-password"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>keyring<span class="w"> </span><span class="nb">set</span><span class="w"> </span>pypi.company.com<span class="w"> </span>your-username $<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>your-package<span class="w"> </span>--keyring-provider<span class="w"> </span>import<span class="w"> </span>--index-url<span class="w"> </span>https://pypi.company.com/ </pre></div> </div> </section> <section id="using-keyring-as-a-command-line-application"> <h3>Using keyring as a command line application<a class="headerlink" href="#using-keyring-as-a-command-line-application" title="Link to this heading">¶</a></h3> <p>Setting <code class="docutils literal notranslate"><span class="pre">keyring-provider</span></code> to <code class="docutils literal notranslate"><span class="pre">subprocess</span></code> makes pip look for and use the <code class="docutils literal notranslate"><span class="pre">keyring</span></code> command found on <code class="docutils literal notranslate"><span class="pre">PATH</span></code>.</p> <p>For this use case, a username <em>must</em> be included in the URL, since it is required by <code class="docutils literal notranslate"><span class="pre">keyring</span></code>’s command line interface. See the example below or the basic HTTP authentication section at the top of this page.</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install keyring from PyPI using pipx, which we assume is installed properly</span> <span class="c1"># you can also create a venv somewhere and add it to the PATH yourself instead</span> $<span class="w"> </span>pipx<span class="w"> </span>install<span class="w"> </span>keyring<span class="w"> </span>--index-url<span class="w"> </span>https://pypi.org/simple <span class="c1"># For Azure DevOps, also install its keyring backend.</span> $<span class="w"> </span>pipx<span class="w"> </span>inject<span class="w"> </span>keyring<span class="w"> </span>artifacts-keyring<span class="w"> </span>--index-url<span class="w"> </span>https://pypi.org/simple <span class="c1"># For Google Artifact Registry, also install and initialize its keyring backend.</span> $<span class="w"> </span>pipx<span class="w"> </span>inject<span class="w"> </span>keyring<span class="w"> </span>keyrings.google-artifactregistry-auth<span class="w"> </span>--index-url<span class="w"> </span>https://pypi.org/simple $<span class="w"> </span>gcloud<span class="w"> </span>auth<span class="w"> </span>login <span class="c1"># Note that a username is required in the index URL.</span> $<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>your-package<span class="w"> </span>--keyring-provider<span class="w"> </span>subprocess<span class="w"> </span>--index-url<span class="w"> </span>https://username@pypi.example.com/ </pre></div> </div> </section> <section id="here-be-dragons"> <h3>Here be dragons<a class="headerlink" href="#here-be-dragons" title="Link to this heading">¶</a></h3> <p>The <code class="docutils literal notranslate"><span class="pre">auto</span></code> provider is conservative and does not query keyring at all when <code class="docutils literal notranslate"><span class="pre">--no-input</span></code> is used because the keyring might require user interaction such as prompting the user on the console. Third party tools frequently call Pip for you and do indeed pass <code class="docutils literal notranslate"><span class="pre">--no-input</span></code> as they are well-behaved and don’t have much information to work with. (Keyring does have an api to request a backend that does not require user input.) You have more information about your system, however!</p> <p>You can force keyring usage by requesting a keyring provider other than <code class="docutils literal notranslate"><span class="pre">auto</span></code> (or <code class="docutils literal notranslate"><span class="pre">disabled</span></code>). Leaving <code class="docutils literal notranslate"><span class="pre">import</span></code> and <code class="docutils literal notranslate"><span class="pre">subprocess</span></code>. You do this by passing <code class="docutils literal notranslate"><span class="pre">--keyring-provider</span> <span class="pre">import</span></code> or one of the following methods:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># via config file, possibly with --user, --global or --site</span> $<span class="w"> </span>pip<span class="w"> </span>config<span class="w"> </span><span class="nb">set</span><span class="w"> </span>global.keyring-provider<span class="w"> </span>subprocess <span class="c1"># or via environment variable</span> $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><span class="nv">PIP_KEYRING_PROVIDER</span><span class="o">=</span>import </pre></div> </div> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>Be careful when doing this since it could cause tools such as pipx and Pipenv to appear to hang. They show their own progress indicator while hiding output from the subprocess in which they run Pip. You won’t know whether the keyring backend is waiting the user input or not in such situations.</p> </div> <p>Note that <code class="docutils literal notranslate"><span class="pre">keyring</span></code> (the Python package) needs to be installed separately from pip. This can create a bootstrapping issue if you need the credentials stored in the keyring to download and install keyring.</p> <p>It is, thus, expected that users that wish to use pip’s keyring support have some mechanism for downloading and installing <a class="reference external" href="https://pypi.org/project/keyring">keyring</a>.</p> </section> </section> </section> </article> </div> <footer> <div class="related-pages"> <a class="next-page" href="caching.html"> <div class="page-info"> <div class="context"> <span>Next</span> </div> <div class="title">Caching</div> </div> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> </a> <a class="prev-page" href="index.html"> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> <div class="page-info"> <div class="context"> <span>Previous</span> </div> <div class="title">Topic Guides</div> </div> </a> </div> <div class="bottom-of-page"> <div class="left-details"> <div class="copyright"> <a href="../copyright.html">Copyright</a> © The pip developers </div> Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s <a href="https://github.com/pradyunsg/furo">Furo</a> </div> <div class="right-details"> </div> </div> </footer> </div> <aside class="toc-drawer"> <div class="toc-sticky toc-scroll"> <div class="toc-title-container"> <span class="toc-title"> On this page </span> </div> <div class="toc-tree-container"> <div class="toc-tree"> <ul> <li><a class="reference internal" href="#">Authentication</a><ul> <li><a class="reference internal" href="#basic-http-authentication">Basic HTTP authentication</a><ul> <li><a class="reference internal" href="#percent-encoding-special-characters">Percent-encoding special characters</a></li> </ul> </li> <li><a class="reference internal" href="#netrc-support">netrc support</a></li> <li><a class="reference internal" href="#keyring-support">Keyring Support</a><ul> <li><a class="reference internal" href="#configuring-pip-s-keyring-usage">Configuring pip’s keyring usage</a></li> <li><a class="reference internal" href="#using-keyring-s-python-module">Using keyring’s Python module</a></li> <li><a class="reference internal" href="#using-keyring-as-a-command-line-application">Using keyring as a command line application</a></li> <li><a class="reference internal" href="#here-be-dragons">Here be dragons</a></li> </ul> </li> </ul> </li> </ul> </div> </div> </div> </aside> </div> </div><script src="../_static/documentation_options.js?v=22103397"></script> <script src="../_static/doctools.js?v=9bcbadda"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script type="module" src="../_static/scripts/furo.js?v=d32f1409"></script> <script src="../_static/clipboard.min.js?v=66b4909c"></script> <script src="../_static/copybutton.js?v=80126f2a"></script> <script src="../_static/tabs.js?v=3ee01567"></script> </body> </html>