CINXE.COM
Python Security | Python.org
<!doctype html> <!--[if lt IE 7]> <html class="no-js ie6 lt-ie7 lt-ie8 lt-ie9"> <![endif]--> <!--[if IE 7]> <html class="no-js ie7 lt-ie8 lt-ie9"> <![endif]--> <!--[if IE 8]> <html class="no-js ie8 lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--><html class="no-js" lang="en" dir="ltr"> <!--<![endif]--> <head> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-TF35YF9CVH"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TF35YF9CVH'); </script> <!-- Plausible.io analytics --> <script defer data-domain="python.org" src="https://plausible.io/js/script.js"></script> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <link rel="prefetch" href="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> <link rel="prefetch" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"> <meta name="application-name" content="Python.org"> <meta name="msapplication-tooltip" content="The official home of the Python Programming Language"> <meta name="apple-mobile-web-app-title" content="Python.org"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="HandheldFriendly" content="True"> <meta name="format-detection" content="telephone=no"> <meta http-equiv="cleartype" content="on"> <meta http-equiv="imagetoolbar" content="false"> <script async src="https://media.ethicalads.io/media/client/v1.4.0/ethicalads.min.js" integrity="sha256-U3hKDidudIaxBDEzwGJApJgPEf2mWk6cfMWghrAa6i0= sha384-UcmsCqcNRSLW/dV3Lo1oCi2/VaurXbib6p4HyUEOeIa/4OpsrnucrugAefzVZJfI sha512-q4t1L4xEjGV2R4hzqCa41P8jrgFUS8xTb8rdNv4FGvw7FpydVj/kkxBJHOiaoxHa8olCcx1Slk9K+3sNbsM4ug==" crossorigin="anonymous" ></script> <script src="/static/js/libs/modernizr.js"></script> <link href="/static/stylesheets/style.08a078d0aa02.css" rel="stylesheet" type="text/css" media="all" title="default" /> <link href="/static/stylesheets/mq.98d6092b2ada.css" rel="stylesheet" type="text/css" media="not print, braille, embossed, speech, tty" /> <link href="/static/stylesheets/no-mq.bf0c425cdb73.css" rel="stylesheet" type="text/css" media="screen" /> <!--[if (lte IE 8)&(!IEMobile)]> <link href="/static/stylesheets/no-mq.bf0c425cdb73.css" rel="stylesheet" type="text/css" media="screen" /> <![endif]--> <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/static/apple-touch-icon-144x144-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/static/apple-touch-icon-114x114-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/static/apple-touch-icon-72x72-precomposed.png"> <link rel="apple-touch-icon-precomposed" href="/static/apple-touch-icon-precomposed.png"> <link rel="apple-touch-icon" href="/static/apple-touch-icon-precomposed.png"> <meta name="msapplication-TileImage" content="/static/metro-icon-144x144.png"><!-- white shape --> <meta name="msapplication-TileColor" content="#3673a5"><!-- python blue --> <meta name="msapplication-navbutton-color" content="#3673a5"> <title>Python Security | Python.org</title> <meta name="description" content="The official home of the Python Programming Language"> <meta name="keywords" content="Python programming language object oriented web free open source software license documentation download community"> <meta property="og:type" content="website"> <meta property="og:site_name" content="Python.org"> <meta property="og:title" content="Python Security"> <meta property="og:description" content="The official home of the Python Programming Language"> <meta property="og:image" content="https://www.python.org/static/opengraph-icon-200x200.png"> <meta property="og:image:secure_url" content="https://www.python.org/static/opengraph-icon-200x200.png"> <meta property="og:url" content="https://www.python.org/dev/security/"> <link rel="author" href="/humans.txt"> <link rel="alternate" type="application/rss+xml" title="Python Enhancement Proposals" href="https://peps.python.org/peps.rss"> <link rel="alternate" type="application/rss+xml" title="Python Job Opportunities" href="https://www.python.org/jobs/feed/rss/"> <link rel="alternate" type="application/rss+xml" title="Python Software Foundation News" href="https://feeds.feedburner.com/PythonSoftwareFoundationNews"> <link rel="alternate" type="application/rss+xml" title="Python Insider" href="https://feeds.feedburner.com/PythonInsider"> <link rel="alternate" type="application/rss+xml" title="Python Releases" href="https://www.python.org/downloads/feed.rss"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://www.python.org/", "potentialAction": { "@type": "SearchAction", "target": "https://www.python.org/search/?q={search_term_string}", "query-input": "required name=search_term_string" } } </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-39055973-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body class="python pages default-page"> <div id="touchnav-wrapper"> <div id="nojs" class="do-not-print"> <p><strong>Notice:</strong> While JavaScript is not essential for this website, your interaction with the content will be limited. Please turn JavaScript on for the full experience. </p> </div> <!--[if lte IE 8]> <div id="oldie-warning" class="do-not-print"> <p> <strong>Notice:</strong> Your browser is <em>ancient</em>. Please <a href="http://browsehappy.com/">upgrade to a different browser</a> to experience a better web. </p> </div> <![endif]--> <!-- Sister Site Links --> <div id="top" class="top-bar do-not-print"> <nav class="meta-navigation container" role="navigation"> <div class="skip-link screen-reader-text"> <a href="#content" title="Skip to content">Skip to content</a> </div> <a id="close-python-network" class="jump-link" href="#python-network" aria-hidden="true"> <span aria-hidden="true" class="icon-arrow-down"><span>▼</span></span> Close </a> <ul class="menu" role="tree"> <li class="python-meta current_branch selected"> <a href="/" title="The Python Programming Language" class="current_branch selected">Python</a> </li> <li class="psf-meta "> <a href="https://www.python.org/psf/" title="The Python Software Foundation" >PSF</a> </li> <li class="docs-meta "> <a href="https://docs.python.org" title="Python Documentation" >Docs</a> </li> <li class="pypi-meta "> <a href="https://pypi.org/" title="Python Package Index" >PyPI</a> </li> <li class="jobs-meta "> <a href="/jobs/" title="Python Job Board" >Jobs</a> </li> <li class="shop-meta "> <a href="/community/" >Community</a> </li> </ul> <a id="python-network" class="jump-link" href="#top" aria-hidden="true"> <span aria-hidden="true" class="icon-arrow-up"><span>▲</span></span> The Python Network </a> </nav> </div> <!-- Header elements --> <header class="main-header" role="banner"> <div class="container"> <h1 class="site-headline"> <a href="/"><img class="python-logo" src="/static/img/python-logo.png" alt="python™"></a> </h1> <div class="options-bar-container do-not-print"> <a href="https://psfmember.org/civicrm/contribute/transact?reset=1&id=2" class="donate-button">Donate</a> <div class="options-bar"> <a id="site-map-link" class="jump-to-menu" href="#site-map"><span class="menu-icon">≡</span> Menu</a><form class="search-the-site" action="/search/" method="get"> <fieldset title="Search Python.org"> <span aria-hidden="true" class="icon-search"></span> <label class="screen-reader-text" for="id-search-field">Search This Site</label> <input id="id-search-field" name="q" type="search" role="textbox" class="search-field" placeholder="Search" value="" tabindex="1"> <button type="submit" name="submit" id="submit" class="search-button" title="Submit this Search" tabindex="3"> GO </button> <!--[if IE]><input type="text" style="display: none;" disabled="disabled" size="1" tabindex="4"><![endif]--> </fieldset> </form><span class="breaker"></span><div class="adjust-font-size" aria-hidden="true"> <ul class="navigation menu" aria-label="Adjust Text Size on Page"> <li class="tier-1 last" aria-haspopup="true"> <a href="#" class="action-trigger"><strong><small>A</small> A</strong></a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a class="text-shrink" title="Make Text Smaller" href="javascript:;">Smaller</a></li> <li class="tier-2 element-2" role="treeitem"><a class="text-grow" title="Make Text Larger" href="javascript:;">Larger</a></li> <li class="tier-2 element-3" role="treeitem"><a class="text-reset" title="Reset any font size changes I have made" href="javascript:;">Reset</a></li> </ul> </li> </ul> </div><div class="winkwink-nudgenudge"> <ul class="navigation menu" aria-label="Social Media Navigation"> <li class="tier-1 last" aria-haspopup="true"> <a href="#" class="action-trigger">Socialize</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="https://www.linkedin.com/company/python-software-foundation/"><i aria-hidden="true" class="fa fa-linkedin-square"></i>LinkedIn</a></li> <li class="tier-2 element-2" role="treeitem"><a href="https://fosstodon.org/@ThePSF"><span aria-hidden="true" class="icon-mastodon"></span>Mastodon</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/community/irc/"><span aria-hidden="true" class="icon-freenode"></span>Chat on IRC</a></li> <li class="tier-2 element-4" role="treeitem"><a href="https://twitter.com/ThePSF"><span aria-hidden="true" class="icon-twitter"></span>Twitter</a></li> </ul> </li> </ul> </div> <span data-html-include="/authenticated"></span> </div><!-- end options-bar --> </div> <nav id="mainnav" class="python-navigation main-navigation do-not-print" role="navigation"> <ul class="navigation menu" role="menubar" aria-label="Main Navigation"> <li id="about" class="tier-1 element-1 " aria-haspopup="true"> <a href="/about/" title="" class="">About</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/about/apps/" title="">Applications</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/about/quotes/" title="">Quotes</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/about/gettingstarted/" title="">Getting Started</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/about/help/" title="">Help</a></li> <li class="tier-2 element-5" role="treeitem"><a href="http://brochure.getpython.info/" title="">Python Brochure</a></li> </ul> </li> <li id="downloads" class="tier-1 element-2 " aria-haspopup="true"> <a href="/downloads/" title="" class="">Downloads</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/downloads/" title="">All releases</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/downloads/source/" title="">Source code</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/downloads/windows/" title="">Windows</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/downloads/macos/" title="">macOS</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/download/other/" title="">Other Platforms</a></li> <li class="tier-2 element-6" role="treeitem"><a href="https://docs.python.org/3/license.html" title="">License</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/download/alternatives" title="">Alternative Implementations</a></li> </ul> </li> <li id="documentation" class="tier-1 element-3 " aria-haspopup="true"> <a href="/doc/" title="" class="">Documentation</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/doc/" title="">Docs</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/doc/av" title="">Audio/Visual Talks</a></li> <li class="tier-2 element-3" role="treeitem"><a href="https://wiki.python.org/moin/BeginnersGuide" title="">Beginner's Guide</a></li> <li class="tier-2 element-4" role="treeitem"><a href="https://devguide.python.org/" title="">Developer's Guide</a></li> <li class="tier-2 element-5" role="treeitem"><a href="https://docs.python.org/faq/" title="">FAQ</a></li> <li class="tier-2 element-6" role="treeitem"><a href="http://wiki.python.org/moin/Languages" title="">Non-English Docs</a></li> <li class="tier-2 element-7" role="treeitem"><a href="https://peps.python.org" title="">PEP Index</a></li> <li class="tier-2 element-8" role="treeitem"><a href="https://wiki.python.org/moin/PythonBooks" title="">Python Books</a></li> <li class="tier-2 element-9" role="treeitem"><a href="/doc/essays/" title="">Python Essays</a></li> </ul> </li> <li id="community" class="tier-1 element-4 " aria-haspopup="true"> <a href="/community/" title="" class="">Community</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/community/diversity/" title="">Diversity</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/community/lists/" title="">Mailing Lists</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/community/irc/" title="">IRC</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/community/forums/" title="">Forums</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/psf/annual-report/2021/" title="">PSF Annual Impact Report</a></li> <li class="tier-2 element-6" role="treeitem"><a href="/community/workshops/" title="">Python Conferences</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/community/sigs/" title="">Special Interest Groups</a></li> <li class="tier-2 element-8" role="treeitem"><a href="/community/logos/" title="">Python Logo</a></li> <li class="tier-2 element-9" role="treeitem"><a href="https://wiki.python.org/moin/" title="">Python Wiki</a></li> <li class="tier-2 element-10" role="treeitem"><a href="/psf/conduct/" title="">Code of Conduct</a></li> <li class="tier-2 element-11" role="treeitem"><a href="/community/awards" title="">Community Awards</a></li> <li class="tier-2 element-12" role="treeitem"><a href="/psf/get-involved/" title="">Get Involved</a></li> <li class="tier-2 element-13" role="treeitem"><a href="/psf/community-stories/" title="">Shared Stories</a></li> </ul> </li> <li id="success-stories" class="tier-1 element-5 " aria-haspopup="true"> <a href="/success-stories/" title="success-stories" class="">Success Stories</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/success-stories/category/arts/" title="">Arts</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/success-stories/category/business/" title="">Business</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/success-stories/category/education/" title="">Education</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/success-stories/category/engineering/" title="">Engineering</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/success-stories/category/government/" title="">Government</a></li> <li class="tier-2 element-6" role="treeitem"><a href="/success-stories/category/scientific/" title="">Scientific</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/success-stories/category/software-development/" title="">Software Development</a></li> </ul> </li> <li id="news" class="tier-1 element-6 " aria-haspopup="true"> <a href="/blogs/" title="News from around the Python world" class="">News</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/blogs/" title="Python Insider Blog Posts">Python News</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/psf/newsletter/" title="Python Software Foundation Newsletter">PSF Newsletter</a></li> <li class="tier-2 element-3" role="treeitem"><a href="http://pyfound.blogspot.com/" title="PSF Blog">PSF News</a></li> <li class="tier-2 element-4" role="treeitem"><a href="http://pycon.blogspot.com/" title="PyCon Blog">PyCon US News</a></li> <li class="tier-2 element-5" role="treeitem"><a href="http://planetpython.org/" title="Planet Python">News from the Community</a></li> </ul> </li> <li id="events" class="tier-1 element-7 " aria-haspopup="true"> <a href="/events/" title="" class="">Events</a> <ul class="subnav menu" role="menu" aria-hidden="true"> <li class="tier-2 element-1" role="treeitem"><a href="/events/python-events/" title="">Python Events</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/events/python-user-group/" title="">User Group Events</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/events/python-events/past/" title="">Python Events Archive</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/events/python-user-group/past/" title="">User Group Events Archive</a></li> <li class="tier-2 element-5" role="treeitem"><a href="https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event" title="">Submit an Event</a></li> </ul> </li> </ul> </nav> <div class="header-banner "> <!-- for optional "do-not-print" class --> </div> </div><!-- end .container --> </header> <div id="content" class="content-wrapper"> <!-- Main Content Column --> <div class="container"> <section class="main-content with-left-sidebar" role="main"> <ul class="breadcrumbs menu"> <li> <a href="/" title="The Python Programming Language">Python</a><span class="prompt">>>></span> </li> <li>Report a Security Issue</li> </ul> <article class="text"> <header class="article-header"> <h1 class="page-title">Python Security</h1> </header> <div class="section" id="reporting-security-issues-with-pypi-or-a-project-hosted-on-pypi"> <h1>Reporting security issues with PyPI or a project hosted on PyPI</h1> <p>See the security issue information for pypi.org <a class="reference external" href="https://pypi.org/security/">here</a>.</p> </div> <div class="section" id="reporting-security-issues"> <h1>Reporting security issues</h1> <p>The Python Software Foundation and the Python developer community take security vulnerabilities very seriously. A Python Security Response Team (PSRT) has been formed that does triage on all reported vulnerabilities and works to resolve them. To reach the response team, send email to <a class="reference external" href="mailto:%73%65%63%75%72%69%74%79%40%70%79%74%68%6F%6E%2E%6F%72%67">security at python dot org</a>. Only the response team members will see your email, and it will be treated confidentially.</p> <p>The PSRT mailing list is tightly controlled, so you can have confidence that your security issue will only be read by a highly trusted cabal of Python developers. If for some reason you wish to further encrypt your message to this mailing list (for example, if your mail system does not use TLS), you can use our shared <a class="reference external" href="#opengpg-key">OpenPGP key</a> which is also available on the public keyservers.</p> <p>The PSRT accepts security reports for the following projects:</p> <ul class="simple"> <li>CPython versions (supported and end-of-life) available at <a class="reference external" href="https://python.org/downloads">https://python.org/downloads</a></li> <li>pip versions available at <a class="reference external" href="https://pypi.org/project/pip">https://pypi.org/project/pip</a></li> </ul> <p>The PSRT does not accept reports for third-party redistributions of Python or pip. Those reports should be directed towards their corresponding distribution security contact.</p> <div class="section" id="vulnerability-handling"> <h2>Vulnerability handling</h2> <p>The following is an overview of the vulnerability handling process from reporting to disclosure:</p> <ul class="simple"> <li>The reporter reports the vulnerability privately to the PSRT.</li> <li>If the PSRT determines the report isn't a vulnerability, the issue can be opened in a public issue tracker if applicable.</li> <li>If the report constitutes a vulnerability, the PSRT will work privately with the reporter to resolve the vulnerability.</li> <li>The project creates a new release to deliver the fix.</li> <li>The project publicly announces the vulnerability and describes how to apply the fix via an advisory. At this point the vulnerability can be discussed publicly by the reporter and team.</li> </ul> </div> <div class="section" id="bug-bounties"> <h2>Bug bounties</h2> <p>While we sincerely appreciate and encourage reports of suspected security problems in supported Python releases and the PSF web infrastructure, please note that the Python Software Foundation does not run any bug bounty programs. We are a nonprofit organization, depending on donation and support from the community.</p> </div> </div> <div class="section" id="published-advisories-and-mailing-list"> <h1>Published advisories and mailing list</h1> <p>Security advisories are published to multiple public locations. Advisories are sent via email to the <a class="reference external" href="https://mail.python.org/mailman3/lists/security-announce.python.org/">security-announce@python.org mailing list</a>. Subscribe to the mailing list if you'd like to be updated on newly published security advisories. The mailing list has a <a class="reference external" href="https://mail.python.org/archives/list/security-announce@python.org/latest">public archive</a> including all historical advisories sent to the list.</p> <p>There is also an <a class="reference external" href="https://github.com/psf/advisory-database">advisory database</a> published to GitHub using the <a class="reference external" href="https://ossf.github.io/osv-schema/">Open Source Vulnerability</a> (OSV) format which can be consumed using automated tooling.</p> </div> <div class="section" id="cve-numbering-authority-cna-contact"> <h1>CVE Numbering Authority (CNA) contact</h1> <p>If you need to contact the Python Software Foundation CNA directly, such as for updating or disputing a CVE record, you can send an email to <a class="reference external" href="mailto:%63%6E%61%40%70%79%74%68%6F%6E%2E%6F%72%67">cna at python dot org</a>. Be sure that the CVE record in question was issued by the PSF CNA and not a different CNA.</p> </div> <div class="section" id="opengpg-key"> <h1>OpenGPG Key</h1> <p>Key fingerprint:</p> <pre class="literal-block"> pub 2048R/D067453C 2010-09-08 Key fingerprint = F314 452F E3F9 BF87 0435 7732 D273 E0FF D067 453C uid Python Security Response Team <security@python.org> sub 2048R/0953421B 2010-09-08 </pre> <p>Key data:</p> <pre class="literal-block"> -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.10 (GNU/Linux) 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 8C7KT7DjqaL3FVHdMtyrcPk= =Z6PM -----END PGP PUBLIC KEY BLOCK----- </pre> </div> </article> </section> <aside class="left-sidebar" role="secondary"> <div class="psf-sidebar-widget sidebar-widget"> <h3 class="widget-title">The PSF</h3> <p>The Python Software Foundation is the organization behind Python. Become a member of the PSF and help advance the software and our mission. </p> </div> </aside> </div><!-- end .container --> </div><!-- end #content .content-wrapper --> <!-- Footer and social media list --> <footer id="site-map" class="main-footer" role="contentinfo"> <div class="main-footer-links"> <div class="container"> <a id="back-to-top-1" class="jump-link" href="#python-network"><span aria-hidden="true" class="icon-arrow-up"><span>▲</span></span> Back to Top</a> <ul class="sitemap navigation menu do-not-print" role="tree" id="container"> <li class="tier-1 element-1"> <a href="/about/" >About</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/about/apps/" title="">Applications</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/about/quotes/" title="">Quotes</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/about/gettingstarted/" title="">Getting Started</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/about/help/" title="">Help</a></li> <li class="tier-2 element-5" role="treeitem"><a href="http://brochure.getpython.info/" title="">Python Brochure</a></li> </ul> </li> <li class="tier-1 element-2"> <a href="/downloads/" >Downloads</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/downloads/" title="">All releases</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/downloads/source/" title="">Source code</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/downloads/windows/" title="">Windows</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/downloads/macos/" title="">macOS</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/download/other/" title="">Other Platforms</a></li> <li class="tier-2 element-6" role="treeitem"><a href="https://docs.python.org/3/license.html" title="">License</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/download/alternatives" title="">Alternative Implementations</a></li> </ul> </li> <li class="tier-1 element-3"> <a href="/doc/" >Documentation</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/doc/" title="">Docs</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/doc/av" title="">Audio/Visual Talks</a></li> <li class="tier-2 element-3" role="treeitem"><a href="https://wiki.python.org/moin/BeginnersGuide" title="">Beginner's Guide</a></li> <li class="tier-2 element-4" role="treeitem"><a href="https://devguide.python.org/" title="">Developer's Guide</a></li> <li class="tier-2 element-5" role="treeitem"><a href="https://docs.python.org/faq/" title="">FAQ</a></li> <li class="tier-2 element-6" role="treeitem"><a href="http://wiki.python.org/moin/Languages" title="">Non-English Docs</a></li> <li class="tier-2 element-7" role="treeitem"><a href="https://peps.python.org" title="">PEP Index</a></li> <li class="tier-2 element-8" role="treeitem"><a href="https://wiki.python.org/moin/PythonBooks" title="">Python Books</a></li> <li class="tier-2 element-9" role="treeitem"><a href="/doc/essays/" title="">Python Essays</a></li> </ul> </li> <li class="tier-1 element-4"> <a href="/community/" >Community</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/community/diversity/" title="">Diversity</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/community/lists/" title="">Mailing Lists</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/community/irc/" title="">IRC</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/community/forums/" title="">Forums</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/psf/annual-report/2021/" title="">PSF Annual Impact Report</a></li> <li class="tier-2 element-6" role="treeitem"><a href="/community/workshops/" title="">Python Conferences</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/community/sigs/" title="">Special Interest Groups</a></li> <li class="tier-2 element-8" role="treeitem"><a href="/community/logos/" title="">Python Logo</a></li> <li class="tier-2 element-9" role="treeitem"><a href="https://wiki.python.org/moin/" title="">Python Wiki</a></li> <li class="tier-2 element-10" role="treeitem"><a href="/psf/conduct/" title="">Code of Conduct</a></li> <li class="tier-2 element-11" role="treeitem"><a href="/community/awards" title="">Community Awards</a></li> <li class="tier-2 element-12" role="treeitem"><a href="/psf/get-involved/" title="">Get Involved</a></li> <li class="tier-2 element-13" role="treeitem"><a href="/psf/community-stories/" title="">Shared Stories</a></li> </ul> </li> <li class="tier-1 element-5"> <a href="/success-stories/" title="success-stories">Success Stories</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/success-stories/category/arts/" title="">Arts</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/success-stories/category/business/" title="">Business</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/success-stories/category/education/" title="">Education</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/success-stories/category/engineering/" title="">Engineering</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/success-stories/category/government/" title="">Government</a></li> <li class="tier-2 element-6" role="treeitem"><a href="/success-stories/category/scientific/" title="">Scientific</a></li> <li class="tier-2 element-7" role="treeitem"><a href="/success-stories/category/software-development/" title="">Software Development</a></li> </ul> </li> <li class="tier-1 element-6"> <a href="/blogs/" title="News from around the Python world">News</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/blogs/" title="Python Insider Blog Posts">Python News</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/psf/newsletter/" title="Python Software Foundation Newsletter">PSF Newsletter</a></li> <li class="tier-2 element-3" role="treeitem"><a href="http://pyfound.blogspot.com/" title="PSF Blog">PSF News</a></li> <li class="tier-2 element-4" role="treeitem"><a href="http://pycon.blogspot.com/" title="PyCon Blog">PyCon US News</a></li> <li class="tier-2 element-5" role="treeitem"><a href="http://planetpython.org/" title="Planet Python">News from the Community</a></li> </ul> </li> <li class="tier-1 element-7"> <a href="/events/" >Events</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="/events/python-events/" title="">Python Events</a></li> <li class="tier-2 element-2" role="treeitem"><a href="/events/python-user-group/" title="">User Group Events</a></li> <li class="tier-2 element-3" role="treeitem"><a href="/events/python-events/past/" title="">Python Events Archive</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/events/python-user-group/past/" title="">User Group Events Archive</a></li> <li class="tier-2 element-5" role="treeitem"><a href="https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event" title="">Submit an Event</a></li> </ul> </li> <li class="tier-1 element-8"> <a href="/dev/" >Contributing</a> <ul class="subnav menu"> <li class="tier-2 element-1" role="treeitem"><a href="https://devguide.python.org/" title="">Developer's Guide</a></li> <li class="tier-2 element-2" role="treeitem"><a href="https://github.com/python/cpython/issues" title="">Issue Tracker</a></li> <li class="tier-2 element-3" role="treeitem"><a href="https://mail.python.org/mailman/listinfo/python-dev" title="">python-dev list</a></li> <li class="tier-2 element-4" role="treeitem"><a href="/dev/core-mentorship/" title="">Core Mentorship</a></li> <li class="tier-2 element-5" role="treeitem"><a href="/dev/security/" title="">Report a Security Issue</a></li> </ul> </li> </ul> <a id="back-to-top-2" class="jump-link" href="#python-network"><span aria-hidden="true" class="icon-arrow-up"><span>▲</span></span> Back to Top</a> </div><!-- end .container --> </div> <!-- end .main-footer-links --> <div class="site-base"> <div class="container"> <ul class="footer-links navigation menu do-not-print" role="tree"> <li class="tier-1 element-1"><a href="/about/help/">Help & <span class="say-no-more">General</span> Contact</a></li> <li class="tier-1 element-2"><a href="/community/diversity/">Diversity <span class="say-no-more">Initiatives</span></a></li> <li class="tier-1 element-3"><a href="https://github.com/python/pythondotorg/issues">Submit Website Bug</a></li> <li class="tier-1 element-4"> <a href="https://status.python.org/">Status <span class="python-status-indicator-default" id="python-status-indicator"></span></a> </li> </ul> <div class="copyright"> <p><small> <span class="pre">Copyright ©2001-2025.</span> <span class="pre"><a href="/psf-landing/">Python Software Foundation</a></span> <span class="pre"><a href="/about/legal/">Legal Statements</a></span> <span class="pre"><a href="https://policies.python.org/python.org/Privacy-Notice/">Privacy Notice</a></span> <!-- <span class="pre"><a href="/psf/community-infrastructure">Powered by PSF Community Infrastructure</a></span>--> </small></p> </div> </div><!-- end .container --> </div><!-- end .site-base --> </footer> </div><!-- end #touchnav-wrapper --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="/static/js/libs/jquery-1.8.2.min.js"><\/script>')</script> <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script>window.jQuery || document.write('<script src="/static/js/libs/jquery-ui-1.12.1.min.js"><\/script>')</script> <script src="/static/js/libs/masonry.pkgd.min.js"></script> <script src="/static/js/libs/html-includes.js"></script> <script type="text/javascript" src="/static/js/main-min.ef82c06437cf.js" charset="utf-8"></script> <!--[if lte IE 7]> <script type="text/javascript" src="/static/js/plugins/IE8-min.8af6e26c7a3b.js" charset="utf-8"></script> <![endif]--> <!--[if lte IE 8]> <script type="text/javascript" src="/static/js/plugins/getComputedStyle-min.d41d8cd98f00.js" charset="utf-8"></script> <![endif]--> </body> </html>