2556 lines
201 KiB
HTML
2556 lines
201 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<meta property="og:title" content="3. Configure Python" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:url" content="https://docs.python.org/3/using/configure.html" />
|
||
<meta property="og:site_name" content="Python documentation" />
|
||
<meta property="og:description" content="Build Requirements: To build CPython, you will need: A C11 compiler. Optional C11 features are not required., On Windows, Microsoft Visual Studio 2017 or later is required., Support for IEEE 754 fl..." />
|
||
<meta property="og:image" content="_static/og-image.png" />
|
||
<meta property="og:image:alt" content="Python documentation" />
|
||
<meta name="description" content="Build Requirements: To build CPython, you will need: A C11 compiler. Optional C11 features are not required., On Windows, Microsoft Visual Studio 2017 or later is required., Support for IEEE 754 fl..." />
|
||
<meta name="theme-color" content="#3776ab">
|
||
<meta property="og:image:width" content="200">
|
||
<meta property="og:image:height" content="200">
|
||
|
||
<title>3. Configure Python — Python 3.15.0 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=48df1187" />
|
||
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=0fc419ee" />
|
||
|
||
<script src="../_static/documentation_options.js?v=0fe728b1"></script>
|
||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
|
||
<script src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="Search within Python 3.15.0 documentation"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="About these documents" href="../about.html" />
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||
<link rel="next" title="4. Using Python on Windows" href="windows.html" />
|
||
<link rel="prev" title="2. Using Python on Unix platforms" href="unix.html" />
|
||
|
||
|
||
<link rel="canonical" href="https://docs.python.org/3/using/configure.html">
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.svg">
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/menu.js"></script>
|
||
<script type="text/javascript" src="../_static/search-focus.js"></script>
|
||
<script type="text/javascript" src="../_static/themetoggle.js"></script>
|
||
<script type="text/javascript" src="../_static/rtd_switcher.js"></script>
|
||
<meta name="readthedocs-addons-api-version" content="1">
|
||
|
||
</head>
|
||
<body>
|
||
<div class="mobile-nav">
|
||
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
|
||
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">
|
||
<nav class="nav-content" role="navigation">
|
||
<label for="menuToggler" class="toggler__label">
|
||
<span></span>
|
||
</label>
|
||
<span class="nav-items-wrapper">
|
||
<a href="https://www.python.org/" class="nav-logo">
|
||
<img src="../_static/py.svg" alt="Python logo">
|
||
</a>
|
||
<span class="version_switcher_placeholder"></span>
|
||
<form role="search" class="search" action="../search.html" method="get">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
|
||
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
|
||
</svg>
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q">
|
||
<input type="submit" value="Go">
|
||
</form>
|
||
</span>
|
||
</nav>
|
||
<div class="menu-wrapper">
|
||
<nav class="menu" role="navigation" aria-label="main navigation">
|
||
<div class="language_switcher_placeholder"></div>
|
||
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label>
|
||
<div>
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">3. Configure Python</a><ul>
|
||
<li><a class="reference internal" href="#build-requirements">3.1. Build Requirements</a><ul>
|
||
<li><a class="reference internal" href="#requirements-for-optional-modules">3.1.1. Requirements for optional modules</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#generated-files">3.2. Generated files</a><ul>
|
||
<li><a class="reference internal" href="#configure-script">3.2.1. configure script</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#configure-options">3.3. Configure Options</a><ul>
|
||
<li><a class="reference internal" href="#general-options">3.3.1. General Options</a></li>
|
||
<li><a class="reference internal" href="#c-compiler-options">3.3.2. C compiler options</a></li>
|
||
<li><a class="reference internal" href="#linker-options">3.3.3. Linker options</a></li>
|
||
<li><a class="reference internal" href="#options-for-third-party-dependencies">3.3.4. Options for third-party dependencies</a></li>
|
||
<li><a class="reference internal" href="#webassembly-options">3.3.5. WebAssembly Options</a></li>
|
||
<li><a class="reference internal" href="#install-options">3.3.6. Install Options</a></li>
|
||
<li><a class="reference internal" href="#performance-options">3.3.7. Performance options</a></li>
|
||
<li><a class="reference internal" href="#python-debug-build">3.3.8. Python Debug Build</a></li>
|
||
<li><a class="reference internal" href="#debug-options">3.3.9. Debug options</a></li>
|
||
<li><a class="reference internal" href="#id15">3.3.10. Linker options</a></li>
|
||
<li><a class="reference internal" href="#libraries-options">3.3.11. Libraries options</a></li>
|
||
<li><a class="reference internal" href="#security-options">3.3.12. Security Options</a></li>
|
||
<li><a class="reference internal" href="#macos-options">3.3.13. macOS Options</a></li>
|
||
<li><a class="reference internal" href="#ios-options">3.3.14. iOS Options</a></li>
|
||
<li><a class="reference internal" href="#cross-compiling-options">3.3.15. Cross Compiling Options</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#python-build-system">3.4. Python Build System</a><ul>
|
||
<li><a class="reference internal" href="#main-files-of-the-build-system">3.4.1. Main files of the build system</a></li>
|
||
<li><a class="reference internal" href="#main-build-steps">3.4.2. Main build steps</a></li>
|
||
<li><a class="reference internal" href="#main-makefile-targets">3.4.3. Main Makefile targets</a><ul>
|
||
<li><a class="reference internal" href="#make">3.4.3.1. make</a></li>
|
||
<li><a class="reference internal" href="#make-platform">3.4.3.2. make platform</a></li>
|
||
<li><a class="reference internal" href="#make-profile-opt">3.4.3.3. make profile-opt</a></li>
|
||
<li><a class="reference internal" href="#make-clean">3.4.3.4. make clean</a></li>
|
||
<li><a class="reference internal" href="#make-distclean">3.4.3.5. make distclean</a></li>
|
||
<li><a class="reference internal" href="#make-install">3.4.3.6. make install</a></li>
|
||
<li><a class="reference internal" href="#make-test">3.4.3.7. make test</a></li>
|
||
<li><a class="reference internal" href="#make-ci">3.4.3.8. make ci</a></li>
|
||
<li><a class="reference internal" href="#make-buildbottest">3.4.3.9. make buildbottest</a></li>
|
||
<li><a class="reference internal" href="#make-regen-all">3.4.3.10. make regen-all</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#c-extensions">3.4.4. C extensions</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#compiler-and-linker-flags">3.5. Compiler and linker flags</a><ul>
|
||
<li><a class="reference internal" href="#preprocessor-flags">3.5.1. Preprocessor flags</a></li>
|
||
<li><a class="reference internal" href="#compiler-flags">3.5.2. Compiler flags</a></li>
|
||
<li><a class="reference internal" href="#linker-flags">3.5.3. Linker flags</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="unix.html"
|
||
title="previous chapter"><span class="section-number">2. </span>Using Python on Unix platforms</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="windows.html"
|
||
title="next chapter"><span class="section-number">4. </span>Using Python on Windows</a></p>
|
||
</div>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const title = document.querySelector('meta[property="og:title"]').content;
|
||
const elements = document.querySelectorAll('.improvepage');
|
||
const pageurl = window.location.href.split('?')[0];
|
||
elements.forEach(element => {
|
||
const url = new URL(element.href.split('?')[0].replace("-nojs", ""));
|
||
url.searchParams.set('pagetitle', title);
|
||
url.searchParams.set('pageurl', pageurl);
|
||
url.searchParams.set('pagesource', "using/configure.rst");
|
||
element.href = url.toString();
|
||
});
|
||
});
|
||
</script>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a bug</a></li>
|
||
<li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.15/Doc/using/configure.rst?plain=1"
|
||
rel="nofollow">Show source
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="windows.html" title="4. Using Python on Windows"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="unix.html" title="2. Using Python on Unix platforms"
|
||
accesskey="P">previous</a> |</li>
|
||
|
||
<li class="root-icon"><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.15.0 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Python Setup and Usage</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href=""><span class="section-number">3. </span>Configure Python</a></li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
|
||
<input type="submit" value="Go">
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
<li class="right">
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label> |</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="configure-python">
|
||
<h1><span class="section-number">3. </span>Configure Python<a class="headerlink" href="#configure-python" title="Link to this heading">¶</a></h1>
|
||
<section id="build-requirements">
|
||
<span id="id1"></span><h2><span class="section-number">3.1. </span>Build Requirements<a class="headerlink" href="#build-requirements" title="Link to this heading">¶</a></h2>
|
||
<p>To build CPython, you will need:</p>
|
||
<ul class="simple">
|
||
<li><p>A <a class="reference external" href="https://en.cppreference.com/w/c/11">C11</a> compiler. <a class="reference external" href="https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features">Optional C11
|
||
features</a>
|
||
are not required.</p></li>
|
||
<li><p>On Windows, Microsoft Visual Studio 2017 or later is required.</p></li>
|
||
<li><p>Support for <a class="reference external" href="https://en.wikipedia.org/wiki/IEEE_754">IEEE 754</a>
|
||
floating-point numbers and <a class="reference external" href="https://en.wikipedia.org/wiki/NaN#Floating_point">floating-point Not-a-Number (NaN)</a>.</p></li>
|
||
<li><p>Support for threads.</p></li>
|
||
</ul>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.5: </span>On Windows, Visual Studio 2015 or later is now required.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.6: </span>Selected C99 features, like <code class="docutils literal notranslate"><span class="pre"><stdint.h></span></code> and <code class="docutils literal notranslate"><span class="pre">static</span> <span class="pre">inline</span></code> functions,
|
||
are now required.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.7: </span>Thread support is now required.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.11: </span>C11 compiler, IEEE 754 and NaN support are now required.
|
||
On Windows, Visual Studio 2017 or later is required.</p>
|
||
</div>
|
||
<p>See also <span class="target" id="index-0"></span><a class="pep reference external" href="https://peps.python.org/pep-0007/"><strong>PEP 7</strong></a> “Style Guide for C Code” and <span class="target" id="index-1"></span><a class="pep reference external" href="https://peps.python.org/pep-0011/"><strong>PEP 11</strong></a> “CPython platform
|
||
support”.</p>
|
||
<section id="requirements-for-optional-modules">
|
||
<span id="optional-module-requirements"></span><h3><span class="section-number">3.1.1. </span>Requirements for optional modules<a class="headerlink" href="#requirements-for-optional-modules" title="Link to this heading">¶</a></h3>
|
||
<p>Some <a class="reference internal" href="../glossary.html#term-optional-module"><span class="xref std std-term">optional modules</span></a> of the standard library
|
||
require third-party libraries installed for development
|
||
(for example, header files must be available).</p>
|
||
<p>Missing requirements are reported in the <code class="docutils literal notranslate"><span class="pre">configure</span></code> output.
|
||
Modules that are missing due to missing dependencies are listed near the end
|
||
of the <code class="docutils literal notranslate"><span class="pre">make</span></code> output,
|
||
sometimes using an internal name, for example, <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code> for <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>
|
||
module.</p>
|
||
<p>If you distribute a CPython interpreter without optional modules,
|
||
it’s best practice to advise users, who generally expect that
|
||
standard library modules are available.</p>
|
||
<p>Dependencies to build optional modules are:</p>
|
||
<table class="docutils align-left">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Dependency</p></th>
|
||
<th class="head"><p>Minimum version</p></th>
|
||
<th class="head"><p>Python module</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://sourceware.org/bzip2/">libbz2</a></p></td>
|
||
<td></td>
|
||
<td><p><a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://sourceware.org/libffi/">libffi</a></p></td>
|
||
<td><p>3.3.0 recommended</p></td>
|
||
<td><p><a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://tukaani.org/xz/">liblzma</a></p></td>
|
||
<td></td>
|
||
<td><p><a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://www.bytereef.org/mpdecimal/doc/libmpdec/">libmpdec</a></p></td>
|
||
<td><p>2.5.0</p></td>
|
||
<td><p><a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> <a class="footnote-reference brackets" href="#id8" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://tiswww.case.edu/php/chet/readline/rltop.html">libreadline</a> or
|
||
<a class="reference external" href="https://www.thrysoee.dk/editline/">libedit</a> <a class="footnote-reference brackets" href="#id9" id="id3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a></p></td>
|
||
<td></td>
|
||
<td><p><a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://linux.die.net/man/3/libuuid">libuuid</a></p></td>
|
||
<td></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">_uuid</span></code> <a class="footnote-reference brackets" href="#id10" id="id4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://gnu.org/software/ncurses/ncurses.html">ncurses</a> <a class="footnote-reference brackets" href="#id11" id="id5" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p></td>
|
||
<td></td>
|
||
<td><p><a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://openssl-library.org/">OpenSSL</a></p></td>
|
||
<td><p><a class="footnote-reference brackets" href="#id13" id="id6" role="doc-noteref"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></a></p></td>
|
||
<td><p><a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>, <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> <a class="footnote-reference brackets" href="#id12" id="id7" role="doc-noteref"><span class="fn-bracket">[</span>5<span class="fn-bracket">]</span></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://sqlite.org/">SQLite</a></p></td>
|
||
<td><p>3.15.2</p></td>
|
||
<td><p><a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://www.tcl-lang.org/">Tcl/Tk</a></p></td>
|
||
<td><p>8.5.12</p></td>
|
||
<td><p><a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>, <a class="reference internal" href="../library/idle.html#idle"><span class="std std-ref">IDLE</span></a>, <a class="reference internal" href="../library/turtle.html#module-turtle" title="turtle: An educational framework for simple graphics applications"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtle</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><a class="reference external" href="https://www.zlib.net">zlib</a></p></td>
|
||
<td><p>1.2.2.1</p></td>
|
||
<td><p><a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a>, <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a>, <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><a class="reference external" href="https://facebook.github.io/zstd/">zstd</a></p></td>
|
||
<td><p>1.4.5</p></td>
|
||
<td><p><a class="reference internal" href="../library/compression.zstd.html#module-compression.zstd" title="compression.zstd: Low-level interface to compression and decompression routines in the zstd library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compression.zstd</span></code></a></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<aside class="footnote-list brackets">
|
||
<aside class="footnote brackets" id="id8" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">1</a><span class="fn-bracket">]</span></span>
|
||
<p>If <em>libmpdec</em> is not available, the <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module will use
|
||
a pure-Python implementation.
|
||
See <a class="reference internal" href="#cmdoption-with-system-libmpdec"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-libmpdec</span></code></a> for details.</p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id9" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id3">2</a><span class="fn-bracket">]</span></span>
|
||
<p>See <a class="reference internal" href="#cmdoption-with-readline"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-readline</span></code></a> for choosing the backend for the
|
||
<a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> module.</p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id10" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id4">3</a><span class="fn-bracket">]</span></span>
|
||
<p>The <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> module uses <code class="docutils literal notranslate"><span class="pre">_uuid</span></code> to generate “safe” UUIDs.
|
||
See the module documentation for details.</p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id11" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id5">4</a><span class="fn-bracket">]</span></span>
|
||
<p>The <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module requires the <code class="docutils literal notranslate"><span class="pre">libncurses</span></code> or <code class="docutils literal notranslate"><span class="pre">libncursesw</span></code>
|
||
library.
|
||
The <a class="reference internal" href="../library/curses.panel.html#module-curses.panel" title="curses.panel: A panel stack extension that adds depth to curses windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses.panel</span></code></a> module additionally requires the <code class="docutils literal notranslate"><span class="pre">libpanel</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">libpanelw</span></code> library.</p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id12" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id7">5</a><span class="fn-bracket">]</span></span>
|
||
<p>If OpenSSL is not available, the <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> module will use
|
||
bundled implementations of several hash functions.
|
||
See <a class="reference internal" href="#cmdoption-with-builtin-hashlib-hashes"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-builtin-hashlib-hashes</span></code></a> for <em>forcing</em> usage of OpenSSL.</p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id13" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id6">6</a><span class="fn-bracket">]</span></span>
|
||
<p>OpenSSL 1.1.1 is the minimum possible version to build against,
|
||
but the series is end-of-life and no longer receives public security
|
||
fixes. Use the latest patch release of a currently supported LTS
|
||
release series (see the <a class="reference external" href="https://openssl-library.org/roadmap/index.html">OpenSSL Roadmap</a>), or the package
|
||
provided by your operating system if available. Other libraries that
|
||
offer an API compatible with OpenSSL 1.1.1 or later may work, but are
|
||
not officially supported.</p>
|
||
</aside>
|
||
</aside>
|
||
<p>Note that the table does not include all optional modules; in particular,
|
||
platform-specific modules like <a class="reference internal" href="../library/winreg.html#module-winreg" title="winreg: Routines and objects for manipulating the Windows registry."><code class="xref py py-mod docutils literal notranslate"><span class="pre">winreg</span></code></a> are not listed here.</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<ul class="simple">
|
||
<li><p>The <a class="reference external" href="https://devguide.python.org/getting-started/setup-building/#install-dependencies">devguide</a>
|
||
includes a full list of dependencies required to build all modules and
|
||
instructions on how to install them on common platforms.</p></li>
|
||
<li><p><a class="reference internal" href="#cmdoption-with-system-expat"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-expat</span></code></a> allows building with an external
|
||
<a class="reference external" href="https://libexpat.github.io/">libexpat</a> library.</p></li>
|
||
<li><p><a class="reference internal" href="#configure-options-for-dependencies"><span class="std std-ref">Options for third-party dependencies</span></a></p></li>
|
||
</ul>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Tcl/Tk version 8.3.1 is now required for <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.5: </span>Tcl/Tk version 8.4 is now required for <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.7: </span>OpenSSL 1.0.2 is now required for <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> and <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.10: </span>OpenSSL 1.1.1 is now required for <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> and <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>.
|
||
SQLite 3.7.15 is now required for <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.11: </span>Tcl/Tk version 8.5.12 is now required for <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.13: </span>SQLite 3.15.2 is now required for <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>.</p>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="generated-files">
|
||
<h2><span class="section-number">3.2. </span>Generated files<a class="headerlink" href="#generated-files" title="Link to this heading">¶</a></h2>
|
||
<p>To reduce build dependencies, Python source code contains multiple generated
|
||
files. Commands to regenerate all generated files:</p>
|
||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>make<span class="w"> </span>regen-all
|
||
make<span class="w"> </span>regen-stdlib-module-names
|
||
make<span class="w"> </span>regen-limited-abi
|
||
make<span class="w"> </span>regen-configure
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">Makefile.pre.in</span></code> file documents generated files, their inputs, and tools used
|
||
to regenerate them. Search for <code class="docutils literal notranslate"><span class="pre">regen-*</span></code> make targets.</p>
|
||
<section id="configure-script">
|
||
<h3><span class="section-number">3.2.1. </span>configure script<a class="headerlink" href="#configure-script" title="Link to this heading">¶</a></h3>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-configure</span></code> command regenerates the <code class="docutils literal notranslate"><span class="pre">aclocal.m4</span></code> file and
|
||
the <code class="docutils literal notranslate"><span class="pre">configure</span></code> script using the <code class="docutils literal notranslate"><span class="pre">Tools/build/regen-configure.sh</span></code> shell
|
||
script which uses an Ubuntu container to get the same tools versions and have a
|
||
reproducible output.</p>
|
||
<p>The container is optional, the following command can be run locally:</p>
|
||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>autoreconf<span class="w"> </span>-ivf<span class="w"> </span>-Werror
|
||
</pre></div>
|
||
</div>
|
||
<p>The generated files can change depending on the exact versions of the
|
||
tools used.
|
||
The container that CPython uses has
|
||
<a class="reference external" href="https://gnu.org/software/autoconf">Autoconf</a> 2.72,
|
||
<code class="docutils literal notranslate"><span class="pre">aclocal</span></code> from <a class="reference external" href="https://www.gnu.org/software/automake">Automake</a> 1.16.5,
|
||
and <a class="reference external" href="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a> 1.8.1.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.13: </span>Autoconf 2.71 and aclocal 1.16.5 and are now used to regenerate
|
||
<code class="file docutils literal notranslate"><span class="pre">configure</span></code>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.14: </span>Autoconf 2.72 is now used to regenerate <code class="file docutils literal notranslate"><span class="pre">configure</span></code>.</p>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="configure-options">
|
||
<span id="id14"></span><h2><span class="section-number">3.3. </span>Configure Options<a class="headerlink" href="#configure-options" title="Link to this heading">¶</a></h2>
|
||
<p>List all <code class="file docutils literal notranslate"><span class="pre">configure</span></code> script options using:</p>
|
||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./configure<span class="w"> </span>--help
|
||
</pre></div>
|
||
</div>
|
||
<p>See also the <code class="file docutils literal notranslate"><span class="pre">Misc/SpecialBuilds.txt</span></code> in the Python source distribution.</p>
|
||
<section id="general-options">
|
||
<h3><span class="section-number">3.3.1. </span>General Options<a class="headerlink" href="#general-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-loadable-sqlite-extensions">
|
||
<span class="sig-name descname"><span class="pre">--enable-loadable-sqlite-extensions</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-loadable-sqlite-extensions" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Support loadable extensions in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_sqlite</span></code> extension module (default
|
||
is no) of the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module.</p>
|
||
<p>See the <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.enable_load_extension" title="sqlite3.Connection.enable_load_extension"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.enable_load_extension()</span></code></a> method of the
|
||
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-disable-ipv6">
|
||
<span class="sig-name descname"><span class="pre">--disable-ipv6</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-disable-ipv6" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable IPv6 support (enabled by default if supported), see the
|
||
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> module.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-big-digits">
|
||
<span class="sig-name descname"><span class="pre">--enable-big-digits</span></span><span class="sig-prename descclassname"><span class="pre">=[15|30]</span></span><a class="headerlink" href="#cmdoption-enable-big-digits" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Define the size in bits of Python <a class="reference internal" href="../builtins/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> digits: 15 or 30 bits.</p>
|
||
<p>By default, the digit size is 30.</p>
|
||
<p>Define the <code class="docutils literal notranslate"><span class="pre">PYLONG_BITS_IN_DIGIT</span></code> to <code class="docutils literal notranslate"><span class="pre">15</span></code> or <code class="docutils literal notranslate"><span class="pre">30</span></code>.</p>
|
||
<p>See <a class="reference internal" href="../library/sys.html#sys.int_info" title="sys.int_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.int_info.bits_per_digit</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-suffix">
|
||
<span class="sig-name descname"><span class="pre">--with-suffix</span></span><span class="sig-prename descclassname"><span class="pre">=SUFFIX</span></span><a class="headerlink" href="#cmdoption-with-suffix" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Set the Python executable suffix to <em>SUFFIX</em>.</p>
|
||
<p>The default suffix is <code class="docutils literal notranslate"><span class="pre">.exe</span></code> on Windows and macOS (<code class="docutils literal notranslate"><span class="pre">python.exe</span></code>
|
||
executable), <code class="docutils literal notranslate"><span class="pre">.js</span></code> on Emscripten node, <code class="docutils literal notranslate"><span class="pre">.html</span></code> on Emscripten browser,
|
||
<code class="docutils literal notranslate"><span class="pre">.wasm</span></code> on WASI, and an empty string on other platforms (<code class="docutils literal notranslate"><span class="pre">python</span></code>
|
||
executable).</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.11: </span>The default suffix on WASM platform is one of <code class="docutils literal notranslate"><span class="pre">.js</span></code>, <code class="docutils literal notranslate"><span class="pre">.html</span></code>
|
||
or <code class="docutils literal notranslate"><span class="pre">.wasm</span></code>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-tzpath">
|
||
<span class="sig-name descname"><span class="pre">--with-tzpath</span></span><span class="sig-prename descclassname"><span class="pre">=<list</span> <span class="pre">of</span> <span class="pre">absolute</span> <span class="pre">paths</span> <span class="pre">separated</span> <span class="pre">by</span> <span class="pre">pathsep></span></span><a class="headerlink" href="#cmdoption-with-tzpath" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Select the default time zone search path for <a class="reference internal" href="../library/zoneinfo.html#zoneinfo.TZPATH" title="zoneinfo.TZPATH"><code class="xref py py-const docutils literal notranslate"><span class="pre">zoneinfo.TZPATH</span></code></a>.
|
||
See the <a class="reference internal" href="../library/zoneinfo.html#zoneinfo-data-compile-time-config"><span class="std std-ref">Compile-time configuration</span></a> of the <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> module.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo</span></code>.</p>
|
||
<p>See <a class="reference internal" href="../library/os.html#os.pathsep" title="os.pathsep"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.pathsep</span></code></a> path separator.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-decimal-contextvar">
|
||
<span class="sig-name descname"><span class="pre">--without-decimal-contextvar</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-decimal-contextvar" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Build the <code class="docutils literal notranslate"><span class="pre">_decimal</span></code> extension module using a thread-local context rather
|
||
than a coroutine-local context (default), see the <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module.</p>
|
||
<p>See <a class="reference internal" href="../library/decimal.html#decimal.HAVE_CONTEXTVAR" title="decimal.HAVE_CONTEXTVAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">decimal.HAVE_CONTEXTVAR</span></code></a> and the <a class="reference internal" href="../library/contextvars.html#module-contextvars" title="contextvars: Context Variables"><code class="xref py py-mod docutils literal notranslate"><span class="pre">contextvars</span></code></a> module.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-dbmliborder">
|
||
<span class="sig-name descname"><span class="pre">--with-dbmliborder</span></span><span class="sig-prename descclassname"><span class="pre">=<list</span> <span class="pre">of</span> <span class="pre">backend</span> <span class="pre">names></span></span><a class="headerlink" href="#cmdoption-with-dbmliborder" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Override order to check db backends for the <a class="reference internal" href="../library/dbm.html#module-dbm" title="dbm: Interfaces to various Unix "database" formats."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm</span></code></a> module</p>
|
||
<p>A valid value is a colon (<code class="docutils literal notranslate"><span class="pre">:</span></code>) separated string with the backend names:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">ndbm</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">gdbm</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">bdb</span></code>.</p></li>
|
||
</ul>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-c-locale-coercion">
|
||
<span class="sig-name descname"><span class="pre">--without-c-locale-coercion</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-c-locale-coercion" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable C locale coercion to a UTF-8 based locale (enabled by default).</p>
|
||
<p>Don’t define the <code class="docutils literal notranslate"><span class="pre">PY_COERCE_C_LOCALE</span></code> macro.</p>
|
||
<p>See <span class="target" id="index-2"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONCOERCECLOCALE"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONCOERCECLOCALE</span></code></a> and the <span class="target" id="index-3"></span><a class="pep reference external" href="https://peps.python.org/pep-0538/"><strong>PEP 538</strong></a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-platlibdir">
|
||
<span class="sig-name descname"><span class="pre">--with-platlibdir</span></span><span class="sig-prename descclassname"><span class="pre">=DIRNAME</span></span><a class="headerlink" href="#cmdoption-with-platlibdir" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Python library directory name (default is <code class="docutils literal notranslate"><span class="pre">lib</span></code>).</p>
|
||
<p>Fedora and SuSE use <code class="docutils literal notranslate"><span class="pre">lib64</span></code> on 64-bit platforms.</p>
|
||
<p>See <a class="reference internal" href="../library/sys.html#sys.platlibdir" title="sys.platlibdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platlibdir</span></code></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-wheel-pkg-dir">
|
||
<span class="sig-name descname"><span class="pre">--with-wheel-pkg-dir</span></span><span class="sig-prename descclassname"><span class="pre">=PATH</span></span><a class="headerlink" href="#cmdoption-with-wheel-pkg-dir" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Directory of wheel packages used by the <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a> module
|
||
(none by default).</p>
|
||
<p>Some Linux distribution packaging policies recommend against bundling
|
||
dependencies. For example, Fedora installs wheel packages in the
|
||
<code class="docutils literal notranslate"><span class="pre">/usr/share/python-wheels/</span></code> directory and don’t install the
|
||
<code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip._bundled</span></code> package.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-pkg-config">
|
||
<span class="sig-name descname"><span class="pre">--with-pkg-config</span></span><span class="sig-prename descclassname"><span class="pre">=[check|yes|no]</span></span><a class="headerlink" href="#cmdoption-with-pkg-config" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Whether configure should use <strong class="program">pkg-config</strong> to detect build
|
||
dependencies.</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">check</span></code> (default): <strong class="program">pkg-config</strong> is optional</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">yes</span></code>: <strong class="program">pkg-config</strong> is mandatory</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">no</span></code>: configure does not use <strong class="program">pkg-config</strong> even when present</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-missing-stdlib-config">
|
||
<span class="sig-name descname"><span class="pre">--with-missing-stdlib-config</span></span><span class="sig-prename descclassname"><span class="pre">=FILE</span></span><a class="headerlink" href="#cmdoption-with-missing-stdlib-config" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Path to a <a class="reference external" href="https://www.json.org/json-en.html">JSON</a> configuration file
|
||
containing custom error messages for missing <a class="reference internal" href="../glossary.html#term-standard-library"><span class="xref std std-term">standard library</span></a> modules.</p>
|
||
<p>This option is intended for Python distributors who wish to provide
|
||
distribution-specific guidance when users encounter standard library
|
||
modules that are missing or packaged separately.</p>
|
||
<p>The JSON file should map missing module names to custom error message strings.
|
||
For example, if your distribution packages <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> and
|
||
<a class="reference internal" href="../library/tkinter.html#module-_tkinter" title="_tkinter: A binary module that contains the low-level interface to Tcl/Tk."><code class="xref py py-mod docutils literal notranslate"><span class="pre">_tkinter</span></code></a> separately and excludes <code class="xref py py-mod docutils literal notranslate"><span class="pre">_gdbm</span></code> for legal reasons,
|
||
the configuration could contain:</p>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
|
||
<span class="w"> </span><span class="nt">"_gdbm"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The '_gdbm' module is not available in this distribution"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"tkinter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Install the python-tk package to use tkinter"</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="nt">"_tkinter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Install the python-tk package to use tkinter"</span><span class="p">,</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-pystats">
|
||
<span class="sig-name descname"><span class="pre">--enable-pystats</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-pystats" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Turn on internal Python performance statistics gathering.</p>
|
||
<p>By default, statistics gathering is off. Use <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-X</span> <span class="pre">pystats</span></code> command
|
||
or set <code class="docutils literal notranslate"><span class="pre">PYTHONSTATS=1</span></code> environment variable to turn on statistics
|
||
gathering at Python startup.</p>
|
||
<p>At Python exit, dump statistics if statistics gathering was on and not
|
||
cleared.</p>
|
||
<p>Effects:</p>
|
||
<ul class="simple">
|
||
<li><p>Add <a class="reference internal" href="cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">pystats</span></code></a> command line option.</p></li>
|
||
<li><p>Add <code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTATS</span></code> environment variable.</p></li>
|
||
<li><p>Define the <code class="docutils literal notranslate"><span class="pre">Py_STATS</span></code> macro.</p></li>
|
||
<li><p>Add functions to the <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> module:</p>
|
||
<ul>
|
||
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._stats_on()</span></code>: Turns on statistics gathering.</p></li>
|
||
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._stats_off()</span></code>: Turns off statistics gathering.</p></li>
|
||
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._stats_clear()</span></code>: Clears the statistics.</p></li>
|
||
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._stats_dump()</span></code>: Dump statistics to file, and clears the statistics.</p></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>The statistics will be dumped to a arbitrary (probably unique) file in
|
||
<code class="docutils literal notranslate"><span class="pre">/tmp/py_stats/</span></code> (Unix) or <code class="docutils literal notranslate"><span class="pre">C:\temp\py_stats\</span></code> (Windows). If that
|
||
directory does not exist, results will be printed on stderr.</p>
|
||
<p>Use <code class="docutils literal notranslate"><span class="pre">Tools/scripts/summarize_stats.py</span></code> to read the stats.</p>
|
||
<p>Statistics:</p>
|
||
<ul class="simple">
|
||
<li><p>Opcode:</p>
|
||
<ul>
|
||
<li><p>Specialization: success, failure, hit, deferred, miss, deopt, failures;</p></li>
|
||
<li><p>Execution count;</p></li>
|
||
<li><p>Pair count.</p></li>
|
||
</ul>
|
||
</li>
|
||
<li><p>Call:</p>
|
||
<ul>
|
||
<li><p>Inlined Python calls;</p></li>
|
||
<li><p>PyEval calls;</p></li>
|
||
<li><p>Frames pushed;</p></li>
|
||
<li><p>Frame object created;</p></li>
|
||
<li><p>Eval calls: vector, generator, legacy, function VECTORCALL, build class,
|
||
slot, function “ex”, API, method.</p></li>
|
||
</ul>
|
||
</li>
|
||
<li><p>Object:</p>
|
||
<ul>
|
||
<li><p>incref and decref;</p></li>
|
||
<li><p>interpreter incref and decref;</p></li>
|
||
<li><p>allocations: all, 512 bytes, 4 kiB, big;</p></li>
|
||
<li><p>free;</p></li>
|
||
<li><p>to/from free lists;</p></li>
|
||
<li><p>dictionary materialized/dematerialized;</p></li>
|
||
<li><p>type cache;</p></li>
|
||
<li><p>optimization attempts;</p></li>
|
||
<li><p>optimization traces created/executed;</p></li>
|
||
<li><p>uops executed.</p></li>
|
||
</ul>
|
||
</li>
|
||
<li><p>Garbage collector:</p>
|
||
<ul>
|
||
<li><p>Garbage collections;</p></li>
|
||
<li><p>Objects visited;</p></li>
|
||
<li><p>Objects collected.</p></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option" id="free-threading-build">
|
||
<dt class="sig sig-object std" id="cmdoption-disable-gil">
|
||
<span class="sig-name descname"><span class="pre">--disable-gil</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-disable-gil" title="Link to this definition">¶</a></dt>
|
||
<dd><p id="c.Py_GIL_DISABLED">Enables support for running Python without the <a class="reference internal" href="../glossary.html#term-global-interpreter-lock"><span class="xref std std-term">global interpreter
|
||
lock</span></a> (GIL): <a class="reference internal" href="../glossary.html#term-free-threaded-build"><span class="xref std std-term">free-threaded build</span></a>.</p>
|
||
<p>Defines the <code class="docutils literal notranslate"><span class="pre">Py_GIL_DISABLED</span></code> macro and adds <code class="docutils literal notranslate"><span class="pre">"t"</span></code> to
|
||
<a class="reference internal" href="../library/sys.html#sys.abiflags" title="sys.abiflags"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.abiflags</span></code></a>.</p>
|
||
<p>See <a class="reference internal" href="../whatsnew/3.13.html#whatsnew313-free-threaded-cpython"><span class="std std-ref">Free-threaded CPython</span></a> for more detail.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.13.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-experimental-jit">
|
||
<span class="sig-name descname"><span class="pre">--enable-experimental-jit</span></span><span class="sig-prename descclassname"><span class="pre">=[no|yes|yes-off|interpreter]</span></span><a class="headerlink" href="#cmdoption-enable-experimental-jit" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Indicate how to integrate the <a class="reference internal" href="../whatsnew/3.14.html#whatsnew314-jit-compiler"><span class="std std-ref">experimental just-in-time compiler</span></a>.</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">no</span></code>: Don’t build the JIT.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">yes</span></code>: Enable the JIT. To disable it at runtime, set the environment
|
||
variable <span class="target" id="index-4"></span><a class="reference internal" href="cmdline.html#envvar-PYTHON_JIT"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_JIT=0</span></code></a>.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">yes-off</span></code>: Build the JIT, but disable it by default. To enable it at
|
||
runtime, set the environment variable <span class="target" id="index-5"></span><a class="reference internal" href="cmdline.html#envvar-PYTHON_JIT"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_JIT=1</span></code></a>.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">interpreter</span></code>: Enable the “JIT interpreter” (only useful for those
|
||
debugging the JIT itself). To disable it at runtime, set the environment
|
||
variable <span class="target" id="index-6"></span><a class="reference internal" href="cmdline.html#envvar-PYTHON_JIT"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_JIT=0</span></code></a>.</p></li>
|
||
</ul>
|
||
<p><code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit=no</span></code> is the default behavior if the option is not
|
||
provided, and <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code> is shorthand for
|
||
<code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit=yes</span></code>. See <code class="file docutils literal notranslate"><span class="pre">Tools/jit/README.md</span></code> for more
|
||
information, including how to install the necessary build-time dependencies.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>When building CPython with JIT enabled, ensure that your system has Python 3.11 or later installed.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.13.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-PKG_CONFIG">
|
||
<span class="sig-name descname"><span class="pre">PKG_CONFIG</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-PKG_CONFIG" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Path to <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code> utility.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-PKG_CONFIG_LIBDIR">
|
||
<span class="sig-name descname"><span class="pre">PKG_CONFIG_LIBDIR</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-PKG_CONFIG_LIBDIR" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-PKG_CONFIG_PATH">
|
||
<span class="sig-name descname"><span class="pre">PKG_CONFIG_PATH</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-PKG_CONFIG_PATH" title="Link to this definition">¶</a></dt>
|
||
<dd><p><code class="docutils literal notranslate"><span class="pre">pkg-config</span></code> options.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-disable-epoll">
|
||
<span class="sig-name descname"><span class="pre">--disable-epoll</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-disable-epoll" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Build without <code class="docutils literal notranslate"><span class="pre">epoll</span></code>, meaning that <a class="reference internal" href="../library/select.html#select.epoll" title="select.epoll"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.epoll()</span></code></a> will not be
|
||
present even if the system provides an
|
||
<em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/epoll_create(2)">epoll_create</a></em> function.
|
||
This may be used on systems where <em class="manpage">epoll_create</em> or
|
||
<em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/epoll_create1(2)">epoll_create1</a></em> is available
|
||
but incompatible with Linux semantics.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="c-compiler-options">
|
||
<h3><span class="section-number">3.3.2. </span>C compiler options<a class="headerlink" href="#c-compiler-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CC">
|
||
<span class="sig-name descname"><span class="pre">CC</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CC" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler command.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler flags.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CPP">
|
||
<span class="sig-name descname"><span class="pre">CPP</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CPP" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C preprocessor command.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CPPFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CPPFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CPPFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C preprocessor flags, e.g. <code class="samp docutils literal notranslate"><span class="pre">-I</span><em><span class="pre">include_dir</span></em></code>.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="linker-options">
|
||
<h3><span class="section-number">3.3.3. </span>Linker options<a class="headerlink" href="#linker-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LDFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags, e.g. <code class="samp docutils literal notranslate"><span class="pre">-L</span><em><span class="pre">library_directory</span></em></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Libraries to pass to the linker, e.g. <code class="samp docutils literal notranslate"><span class="pre">-l</span><em><span class="pre">library</span></em></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-MACHDEP">
|
||
<span class="sig-name descname"><span class="pre">MACHDEP</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-MACHDEP" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Name for machine-dependent library files.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="options-for-third-party-dependencies">
|
||
<span id="configure-options-for-dependencies"></span><h3><span class="section-number">3.3.4. </span>Options for third-party dependencies<a class="headerlink" href="#options-for-third-party-dependencies" title="Link to this heading">¶</a></h3>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-BZIP2_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">BZIP2_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-BZIP2_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-BZIP2_LIBS">
|
||
<span class="sig-name descname"><span class="pre">BZIP2_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-BZIP2_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags to link Python to <code class="docutils literal notranslate"><span class="pre">libbz2</span></code>, used by <a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a>
|
||
module, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CURSES_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CURSES_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CURSES_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CURSES_LIBS">
|
||
<span class="sig-name descname"><span class="pre">CURSES_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-CURSES_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libncurses</span></code> or <code class="docutils literal notranslate"><span class="pre">libncursesw</span></code>, used by
|
||
<a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-GDBM_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">GDBM_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-GDBM_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-GDBM_LIBS">
|
||
<span class="sig-name descname"><span class="pre">GDBM_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-GDBM_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">gdbm</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBEDIT_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBEDIT_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBEDIT_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBEDIT_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBEDIT_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBEDIT_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libedit</span></code>, used by <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBFFI_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBFFI_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBFFI_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBFFI_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBFFI_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBFFI_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libffi</span></code>, used by <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBMPDEC_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBMPDEC_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBMPDEC_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBMPDEC_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBMPDEC_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBMPDEC_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libmpdec</span></code>, used by <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>These environment variables have no effect unless
|
||
<a class="reference internal" href="#cmdoption-with-system-libmpdec"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-libmpdec</span></code></a> is specified.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBLZMA_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBLZMA_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBLZMA_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBLZMA_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBLZMA_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBLZMA_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">liblzma</span></code>, used by <a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBREADLINE_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBREADLINE_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBREADLINE_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBREADLINE_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBREADLINE_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBREADLINE_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libreadline</span></code>, used by <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a>
|
||
module, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBSQLITE3_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBSQLITE3_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBSQLITE3_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBSQLITE3_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBSQLITE3_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBSQLITE3_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libsqlite3</span></code>, used by <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>
|
||
module, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBUUID_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBUUID_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBUUID_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBUUID_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBUUID_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBUUID_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libuuid</span></code>, used by <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBZSTD_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LIBZSTD_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBZSTD_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-LIBZSTD_LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBZSTD_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-LIBZSTD_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libzstd</span></code>, used by <a class="reference internal" href="../library/compression.zstd.html#module-compression.zstd" title="compression.zstd: Low-level interface to compression and decompression routines in the zstd library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compression.zstd</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-PANEL_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PANEL_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-PANEL_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-PANEL_LIBS">
|
||
<span class="sig-name descname"><span class="pre">PANEL_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-PANEL_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for PANEL, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
<p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libpanel</span></code> or <code class="docutils literal notranslate"><span class="pre">libpanelw</span></code>, used by
|
||
<a class="reference internal" href="../library/curses.panel.html#module-curses.panel" title="curses.panel: A panel stack extension that adds depth to curses windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses.panel</span></code></a> module, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-TCLTK_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">TCLTK_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-TCLTK_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-TCLTK_LIBS">
|
||
<span class="sig-name descname"><span class="pre">TCLTK_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-TCLTK_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for TCLTK, overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-ZLIB_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">ZLIB_CFLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-ZLIB_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-ZLIB_LIBS">
|
||
<span class="sig-name descname"><span class="pre">ZLIB_LIBS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-ZLIB_LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler and linker flags for <code class="docutils literal notranslate"><span class="pre">libzlib</span></code>, used by <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a> module,
|
||
overriding <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="webassembly-options">
|
||
<h3><span class="section-number">3.3.5. </span>WebAssembly Options<a class="headerlink" href="#webassembly-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-wasm-dynamic-linking">
|
||
<span class="sig-name descname"><span class="pre">--enable-wasm-dynamic-linking</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-wasm-dynamic-linking" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Turn on dynamic linking support for WASM.</p>
|
||
<p>Dynamic linking enables <code class="docutils literal notranslate"><span class="pre">dlopen</span></code>. File size of the executable
|
||
increases due to limited dead code elimination and additional features.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-wasm-pthreads">
|
||
<span class="sig-name descname"><span class="pre">--enable-wasm-pthreads</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-wasm-pthreads" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Turn on pthreads support for WASM.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="install-options">
|
||
<h3><span class="section-number">3.3.6. </span>Install Options<a class="headerlink" href="#install-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-prefix">
|
||
<span class="sig-name descname"><span class="pre">--prefix</span></span><span class="sig-prename descclassname"><span class="pre">=PREFIX</span></span><a class="headerlink" href="#cmdoption-prefix" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Install architecture-independent files in PREFIX. On Unix, it
|
||
defaults to <code class="file docutils literal notranslate"><span class="pre">/usr/local</span></code>.</p>
|
||
<p>This value can be retrieved at runtime using <a class="reference internal" href="../library/sys.html#sys.prefix" title="sys.prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.prefix</span></code></a>.</p>
|
||
<p>As an example, one can use <code class="docutils literal notranslate"><span class="pre">--prefix="$HOME/.local/"</span></code> to install
|
||
a Python in its home directory.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-exec-prefix">
|
||
<span class="sig-name descname"><span class="pre">--exec-prefix</span></span><span class="sig-prename descclassname"><span class="pre">=EPREFIX</span></span><a class="headerlink" href="#cmdoption-exec-prefix" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Install architecture-dependent files in EPREFIX, defaults to <a class="reference internal" href="#cmdoption-prefix"><code class="xref std std-option docutils literal notranslate"><span class="pre">--prefix</span></code></a>.</p>
|
||
<p>This value can be retrieved at runtime using <a class="reference internal" href="../library/sys.html#sys.exec_prefix" title="sys.exec_prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exec_prefix</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-disable-test-modules">
|
||
<span class="sig-name descname"><span class="pre">--disable-test-modules</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-disable-test-modules" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Don’t build nor install test modules, like the <a class="reference internal" href="../library/test.html#module-test" title="test: Regression tests package containing the testing suite for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test</span></code></a> package or the
|
||
<code class="xref py py-mod docutils literal notranslate"><span class="pre">_testcapi</span></code> extension module (built and installed by default).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-ensurepip">
|
||
<span class="sig-name descname"><span class="pre">--with-ensurepip</span></span><span class="sig-prename descclassname"><span class="pre">=[upgrade|install|no]</span></span><a class="headerlink" href="#cmdoption-with-ensurepip" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Select the <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a> command run on Python installation:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">upgrade</span></code> (default): run <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">ensurepip</span> <span class="pre">--altinstall</span> <span class="pre">--upgrade</span></code>
|
||
command.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">install</span></code>: run <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">ensurepip</span> <span class="pre">--altinstall</span></code> command;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">no</span></code>: don’t run ensurepip;</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="performance-options">
|
||
<h3><span class="section-number">3.3.7. </span>Performance options<a class="headerlink" href="#performance-options" title="Link to this heading">¶</a></h3>
|
||
<p>Configuring Python using <code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span> <span class="pre">--with-lto</span></code> (PGO + LTO) is
|
||
recommended for best performance. The experimental <code class="docutils literal notranslate"><span class="pre">--enable-bolt</span></code> flag can
|
||
also be used to improve performance.</p>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-optimizations">
|
||
<span class="sig-name descname"><span class="pre">--enable-optimizations</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-optimizations" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable Profile Guided Optimization (PGO) using <span class="target" id="index-7"></span><a class="reference internal" href="#envvar-PROFILE_TASK"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROFILE_TASK</span></code></a>
|
||
(disabled by default).</p>
|
||
<p>The C compiler Clang requires <code class="docutils literal notranslate"><span class="pre">llvm-profdata</span></code> program for PGO. On
|
||
macOS, GCC also requires it: GCC is just an alias to Clang on macOS.</p>
|
||
<p>Disable also semantic interposition in libpython if <code class="docutils literal notranslate"><span class="pre">--enable-shared</span></code> and
|
||
GCC is used: add <code class="docutils literal notranslate"><span class="pre">-fno-semantic-interposition</span></code> to the compiler and linker
|
||
flags.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>During the build, you may encounter compiler warnings about
|
||
profile data not being available for some source files.
|
||
These warnings are harmless, as only a subset of the code is exercised
|
||
during profile data acquisition.
|
||
To disable these warnings on Clang, manually suppress them by adding
|
||
<code class="docutils literal notranslate"><span class="pre">-Wno-profile-instr-unprofiled</span></code> to <span class="target" id="index-8"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a>.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.10: </span>Use <code class="docutils literal notranslate"><span class="pre">-fno-semantic-interposition</span></code> on GCC.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PROFILE_TASK">
|
||
<span class="sig-name descname"><span class="pre">PROFILE_TASK</span></span><a class="headerlink" href="#envvar-PROFILE_TASK" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Environment variable used in the Makefile: Python command line arguments for
|
||
the PGO generation task.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--pgo</span> <span class="pre">--timeout=$(TESTTIMEOUT)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.13: </span>Task failure is no longer ignored silently.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-lto">
|
||
<span class="sig-name descname"><span class="pre">--with-lto</span></span><span class="sig-prename descclassname"><span class="pre">=[full|thin|no|yes]</span></span><a class="headerlink" href="#cmdoption-with-lto" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable Link Time Optimization (LTO) in any build (disabled by default).</p>
|
||
<p>The C compiler Clang requires <code class="docutils literal notranslate"><span class="pre">llvm-ar</span></code> for LTO (<code class="docutils literal notranslate"><span class="pre">ar</span></code> on macOS), as well
|
||
as an LTO-aware linker (<code class="docutils literal notranslate"><span class="pre">ld.gold</span></code> or <code class="docutils literal notranslate"><span class="pre">lld</span></code>).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11: </span>To use ThinLTO feature, use <code class="docutils literal notranslate"><span class="pre">--with-lto=thin</span></code> on Clang.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.12: </span>Use ThinLTO as the default optimization policy on Clang if the compiler accepts the flag.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-bolt">
|
||
<span class="sig-name descname"><span class="pre">--enable-bolt</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-bolt" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable usage of the <a class="reference external" href="https://github.com/llvm/llvm-project/tree/main/bolt">BOLT post-link binary optimizer</a> (disabled by
|
||
default).</p>
|
||
<p>BOLT is part of the LLVM project but is not always included in their binary
|
||
distributions. This flag requires that <code class="docutils literal notranslate"><span class="pre">llvm-bolt</span></code> and <code class="docutils literal notranslate"><span class="pre">merge-fdata</span></code>
|
||
are available.</p>
|
||
<p>BOLT is still a fairly new project so this flag should be considered
|
||
experimental for now. Because this tool operates on machine code its success
|
||
is dependent on a combination of the build environment + the other
|
||
optimization configure args + the CPU architecture, and not all combinations
|
||
are supported.
|
||
BOLT versions before LLVM 16 are known to crash BOLT under some scenarios.
|
||
Use of LLVM 16 or newer for BOLT optimization is strongly encouraged.</p>
|
||
<p>The <code class="xref std std-envvar docutils literal notranslate"><span class="pre">BOLT_INSTRUMENT_FLAGS</span></code> and <code class="xref std std-envvar docutils literal notranslate"><span class="pre">BOLT_APPLY_FLAGS</span></code>
|
||
<strong class="program">configure</strong> variables can be defined to override the default set of
|
||
arguments for <strong class="program">llvm-bolt</strong> to instrument and apply BOLT data to
|
||
binaries, respectively.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.12.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-BOLT_APPLY_FLAGS">
|
||
<span class="sig-name descname"><span class="pre">BOLT_APPLY_FLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-BOLT_APPLY_FLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Arguments to <code class="docutils literal notranslate"><span class="pre">llvm-bolt</span></code> when creating a <a class="reference external" href="https://github.com/facebookarchive/BOLT">BOLT optimized binary</a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.12.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-BOLT_INSTRUMENT_FLAGS">
|
||
<span class="sig-name descname"><span class="pre">BOLT_INSTRUMENT_FLAGS</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-BOLT_INSTRUMENT_FLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Arguments to <code class="docutils literal notranslate"><span class="pre">llvm-bolt</span></code> when instrumenting binaries.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.12.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-computed-gotos">
|
||
<span class="sig-name descname"><span class="pre">--with-computed-gotos</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-computed-gotos" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable computed gotos in evaluation loop (enabled by default on supported
|
||
compilers).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-tail-call-interp">
|
||
<span class="sig-name descname"><span class="pre">--with-tail-call-interp</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-tail-call-interp" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable interpreters using tail calls in CPython. If enabled, enabling PGO
|
||
(<a class="reference internal" href="#cmdoption-enable-optimizations"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-optimizations</span></code></a>) is highly recommended. This option specifically
|
||
requires a C compiler with proper tail call support, and the
|
||
<a class="reference external" href="https://clang.llvm.org/docs/AttributeReference.html#preserve-none">preserve_none</a>
|
||
calling convention. For example, Clang 19 and newer supports this feature.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-frame-pointers">
|
||
<span class="sig-name descname"><span class="pre">--without-frame-pointers</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-frame-pointers" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable frame pointers, which are enabled by default (see <span class="target" id="index-9"></span><a class="pep reference external" href="https://peps.python.org/pep-0831/"><strong>PEP 831</strong></a>).</p>
|
||
<p>By default, the build appends flags to generate frame or backchain
|
||
pointers to <code class="docutils literal notranslate"><span class="pre">BASECFLAGS</span></code>:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">-fno-omit-frame-pointer</span></code> and/or <code class="docutils literal notranslate"><span class="pre">-mno-omit-leaf-frame-pointer</span></code>
|
||
are added when the compiler supports them.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">-marm</span></code> and/or <code class="docutils literal notranslate"><span class="pre">-mno-thumb</span></code> is added on 32-bit ARM when supported,</p></li>
|
||
<li><p>on s390x platforms, when supported, <code class="docutils literal notranslate"><span class="pre">-mbackchain</span></code> is added <em>instead</em>.
|
||
of the above frame pointer flags.</p></li>
|
||
<li><p>on ppc64le platforms, no compiler flags is needed since the power ABI
|
||
requires that compilers maintain a back chain by default.</p></li>
|
||
</ul>
|
||
<p>Frame pointers enable profilers, debuggers, and system tracing tools
|
||
(<code class="docutils literal notranslate"><span class="pre">perf</span></code>, <code class="docutils literal notranslate"><span class="pre">eBPF</span></code>, <code class="docutils literal notranslate"><span class="pre">dtrace</span></code>, <code class="docutils literal notranslate"><span class="pre">gdb</span></code>) to walk the C call stack
|
||
without DWARF metadata. The flags propagate to third-party C
|
||
extensions through <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>. On compilers that do not
|
||
understand them, the build silently skips them.</p>
|
||
<p>Downstream packagers and authors of native libraries built with
|
||
custom build systems should set the same flags so the unwind chain
|
||
stays unbroken across all native frames.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-mimalloc">
|
||
<span class="sig-name descname"><span class="pre">--without-mimalloc</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-mimalloc" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable the fast <a class="reference internal" href="../c-api/memory.html#mimalloc"><span class="std std-ref">mimalloc</span></a> allocator
|
||
(enabled by default).</p>
|
||
<p>This option cannot be used together with <a class="reference internal" href="#cmdoption-disable-gil"><code class="xref std std-option docutils literal notranslate"><span class="pre">--disable-gil</span></code></a>
|
||
because the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a> build requires mimalloc.</p>
|
||
<p>See also <span class="target" id="index-10"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONMALLOC"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONMALLOC</span></code></a> environment variable.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-pymalloc">
|
||
<span class="sig-name descname"><span class="pre">--without-pymalloc</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-pymalloc" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable the specialized Python memory allocator <a class="reference internal" href="../c-api/memory.html#pymalloc"><span class="std std-ref">pymalloc</span></a>
|
||
(enabled by default).</p>
|
||
<p>See also <span class="target" id="index-11"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONMALLOC"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONMALLOC</span></code></a> environment variable.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-pymalloc-hugepages">
|
||
<span class="sig-name descname"><span class="pre">--with-pymalloc-hugepages</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-pymalloc-hugepages" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable huge page support for <a class="reference internal" href="../c-api/memory.html#pymalloc"><span class="std std-ref">pymalloc</span></a> arenas (disabled by
|
||
default). When enabled, the arena size on 64-bit platforms is increased to
|
||
2 MiB and arena allocation uses <code class="docutils literal notranslate"><span class="pre">MAP_HUGETLB</span></code> (Linux) or
|
||
<code class="docutils literal notranslate"><span class="pre">MEM_LARGE_PAGES</span></code> (Windows) with automatic fallback to regular pages.</p>
|
||
<p>Even when compiled with this option, huge pages are <strong>not</strong> used at runtime
|
||
unless the <span class="target" id="index-12"></span><a class="reference internal" href="cmdline.html#envvar-PYTHON_PYMALLOC_HUGEPAGES"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_PYMALLOC_HUGEPAGES</span></code></a> environment variable is set
|
||
to <code class="docutils literal notranslate"><span class="pre">1</span></code>. This opt-in is required because huge pages</p>
|
||
<ul class="simple">
|
||
<li><p>carry risks on Linux: if the huge-page pool is exhausted, page faults
|
||
(including copy-on-write faults after <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a>) deliver <code class="docutils literal notranslate"><span class="pre">SIGBUS</span></code>
|
||
and kill the process.</p></li>
|
||
<li><p>need a special privilege on Windows. See the <a class="reference external" href="https://learn.microsoft.com/windows/win32/memory/large-page-support">Windows documentation for large pages</a>
|
||
for details. Python will fail on startup if the required privilege
|
||
<a class="reference external" href="https://learn.microsoft.com/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/lock-pages-in-memory">SeLockMemoryPrivilege</a>
|
||
is not held by the user.</p></li>
|
||
</ul>
|
||
<p>The configure script checks that the platform supports <code class="docutils literal notranslate"><span class="pre">MAP_HUGETLB</span></code>
|
||
and emits a warning if it is not available.</p>
|
||
<p>On Windows, use the <code class="docutils literal notranslate"><span class="pre">--pymalloc-hugepages</span></code> flag with <code class="docutils literal notranslate"><span class="pre">build.bat</span></code> or
|
||
set the <code class="docutils literal notranslate"><span class="pre">UsePymallocHugepages</span></code> MSBuild property.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-doc-strings">
|
||
<span class="sig-name descname"><span class="pre">--without-doc-strings</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-doc-strings" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable static documentation strings to reduce the memory footprint (enabled
|
||
by default). Documentation strings defined in Python are not affected.</p>
|
||
<p>Don’t define the <code class="docutils literal notranslate"><span class="pre">WITH_DOC_STRINGS</span></code> macro.</p>
|
||
<p>See the <code class="docutils literal notranslate"><span class="pre">PyDoc_STRVAR()</span></code> macro.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-profiling">
|
||
<span class="sig-name descname"><span class="pre">--enable-profiling</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-profiling" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable C-level code profiling with <code class="docutils literal notranslate"><span class="pre">gprof</span></code> (disabled by default).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-strict-overflow">
|
||
<span class="sig-name descname"><span class="pre">--with-strict-overflow</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-strict-overflow" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Add <code class="docutils literal notranslate"><span class="pre">-fstrict-overflow</span></code> to the C compiler flags (by default we add
|
||
<code class="docutils literal notranslate"><span class="pre">-fno-strict-overflow</span></code> instead).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-remote-debug">
|
||
<span class="sig-name descname"><span class="pre">--without-remote-debug</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-remote-debug" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Deactivate remote debugging support described in <span class="target" id="index-13"></span><a class="pep reference external" href="https://peps.python.org/pep-0768/"><strong>PEP 768</strong></a> (enabled by default).
|
||
When this flag is provided the code that allows the interpreter to schedule the
|
||
execution of a Python file in a separate process as described in <span class="target" id="index-14"></span><a class="pep reference external" href="https://peps.python.org/pep-0768/"><strong>PEP 768</strong></a> is
|
||
not compiled. This includes both the functionality to schedule code to be executed
|
||
and the functionality to receive code to be executed.</p>
|
||
<dl class="c macro">
|
||
<dt class="sig sig-object c" id="c.Py_REMOTE_DEBUG">
|
||
<span class="sig-name descname"><span class="n"><span class="pre">Py_REMOTE_DEBUG</span></span></span><a class="headerlink" href="#c.Py_REMOTE_DEBUG" title="Link to this definition">¶</a><br /></dt>
|
||
<dd><p>This macro is defined by default, unless Python is configured with
|
||
<a class="reference internal" href="#cmdoption-without-remote-debug"><code class="xref std std-option docutils literal notranslate"><span class="pre">--without-remote-debug</span></code></a>.</p>
|
||
<p>Note that even if the macro is defined, remote debugging may not be
|
||
available (for example, on an incompatible platform).</p>
|
||
</dd></dl>
|
||
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="python-debug-build">
|
||
<span id="debug-build"></span><h3><span class="section-number">3.3.8. </span>Python Debug Build<a class="headerlink" href="#python-debug-build" title="Link to this heading">¶</a></h3>
|
||
<p>A debug build is Python built with the <a class="reference internal" href="#cmdoption-with-pydebug"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-pydebug</span></code></a> configure
|
||
option.</p>
|
||
<p>Effects of a debug build:</p>
|
||
<ul class="simple">
|
||
<li><p>Display all warnings by default: the list of default warning filters is empty
|
||
in the <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> module.</p></li>
|
||
<li><p>Add <code class="docutils literal notranslate"><span class="pre">d</span></code> to <a class="reference internal" href="../library/sys.html#sys.abiflags" title="sys.abiflags"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.abiflags</span></code></a>.</p></li>
|
||
<li><p>Add <code class="xref py py-func docutils literal notranslate"><span class="pre">sys.gettotalrefcount()</span></code> function.</p></li>
|
||
<li><p>Add <a class="reference internal" href="cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">showrefcount</span></code></a> command line option.</p></li>
|
||
<li><p>Add <a class="reference internal" href="cmdline.html#cmdoption-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code></a> command line option and <span class="target" id="index-15"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONDEBUG"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONDEBUG</span></code></a> environment
|
||
variable to debug the parser.</p></li>
|
||
<li><p>Add support for the <code class="docutils literal notranslate"><span class="pre">__lltrace__</span></code> variable: enable low-level tracing in the
|
||
bytecode evaluation loop if the variable is defined.</p></li>
|
||
<li><p>Install <a class="reference internal" href="../c-api/memory.html#default-memory-allocators"><span class="std std-ref">debug hooks on memory allocators</span></a>
|
||
to detect buffer overflow and other memory errors.</p></li>
|
||
<li><p>Define <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_REF_DEBUG</span></code> macros.</p></li>
|
||
<li><p>Add runtime checks: code surrounded by <code class="docutils literal notranslate"><span class="pre">#ifdef</span> <span class="pre">Py_DEBUG</span></code> and <code class="docutils literal notranslate"><span class="pre">#endif</span></code>.
|
||
Enable <code class="docutils literal notranslate"><span class="pre">assert(...)</span></code> and <code class="docutils literal notranslate"><span class="pre">_PyObject_ASSERT(...)</span></code> assertions: don’t set
|
||
the <code class="docutils literal notranslate"><span class="pre">NDEBUG</span></code> macro (see also the <a class="reference internal" href="#cmdoption-with-assertions"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-assertions</span></code></a> configure
|
||
option). Main runtime checks:</p>
|
||
<ul>
|
||
<li><p>Add sanity checks on the function arguments.</p></li>
|
||
<li><p>Unicode and int objects are created with their memory filled with a pattern
|
||
to detect usage of uninitialized objects.</p></li>
|
||
<li><p>Ensure that functions which can clear or replace the current exception are
|
||
not called with an exception raised.</p></li>
|
||
<li><p>Check that deallocator functions don’t change the current exception.</p></li>
|
||
<li><p>The garbage collector (<a class="reference internal" href="../library/gc.html#gc.collect" title="gc.collect"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.collect()</span></code></a> function) runs some basic checks
|
||
on objects consistency.</p></li>
|
||
<li><p>The <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_SAFE_DOWNCAST()</span></code> macro checks for integer underflow and
|
||
overflow when downcasting from wide types to narrow types.</p></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>See also the <a class="reference internal" href="../library/devmode.html#devmode"><span class="std std-ref">Python Development Mode</span></a> and the
|
||
<a class="reference internal" href="#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a> configure option.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.8: </span>Release builds are now ABI compatible with debug builds: defining the
|
||
<code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> macro no longer implies the <code class="docutils literal notranslate"><span class="pre">Py_TRACE_REFS</span></code> macro (see the
|
||
<a class="reference internal" href="#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a> option). However, debug builds still expose
|
||
more symbols than release builds and code built against a debug build is not
|
||
necessarily compatible with a release build.</p>
|
||
</div>
|
||
</section>
|
||
<section id="debug-options">
|
||
<h3><span class="section-number">3.3.9. </span>Debug options<a class="headerlink" href="#debug-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-pydebug">
|
||
<span class="sig-name descname"><span class="pre">--with-pydebug</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-pydebug" title="Link to this definition">¶</a></dt>
|
||
<dd><p><a class="reference internal" href="#debug-build"><span class="std std-ref">Build Python in debug mode</span></a>: define the <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code>
|
||
macro (disabled by default).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-trace-refs">
|
||
<span class="sig-name descname"><span class="pre">--with-trace-refs</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-trace-refs" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable tracing references for debugging purpose (disabled by default).</p>
|
||
<p>Effects:</p>
|
||
<ul class="simple">
|
||
<li><p>Define the <code class="docutils literal notranslate"><span class="pre">Py_TRACE_REFS</span></code> macro.</p></li>
|
||
<li><p>Add <a class="reference internal" href="../library/sys.html#sys.getobjects" title="sys.getobjects"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getobjects()</span></code></a> function.</p></li>
|
||
<li><p>Add <span class="target" id="index-16"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONDUMPREFS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONDUMPREFS</span></code></a> environment variable.</p></li>
|
||
</ul>
|
||
<p>The <span class="target" id="index-17"></span><a class="reference internal" href="cmdline.html#envvar-PYTHONDUMPREFS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONDUMPREFS</span></code></a> environment variable can be used to dump
|
||
objects and reference counts still alive at Python exit.</p>
|
||
<p><a class="reference internal" href="../c-api/typeobj.html#static-types"><span class="std std-ref">Statically allocated objects</span></a> are not traced.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.13: </span>This build is now ABI compatible with release build and <a class="reference internal" href="#debug-build"><span class="std std-ref">debug build</span></a>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-assertions">
|
||
<span class="sig-name descname"><span class="pre">--with-assertions</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-assertions" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Build with C assertions enabled (default is no): <code class="docutils literal notranslate"><span class="pre">assert(...);</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">_PyObject_ASSERT(...);</span></code>.</p>
|
||
<p>If set, the <code class="docutils literal notranslate"><span class="pre">NDEBUG</span></code> macro is not defined in the <span class="target" id="index-18"></span><a class="reference internal" href="#envvar-OPT"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">OPT</span></code></a> compiler
|
||
variable.</p>
|
||
<p>See also the <a class="reference internal" href="#cmdoption-with-pydebug"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-pydebug</span></code></a> option (<a class="reference internal" href="#debug-build"><span class="std std-ref">debug build</span></a>) which also enables assertions.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-valgrind">
|
||
<span class="sig-name descname"><span class="pre">--with-valgrind</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-valgrind" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable Valgrind support (default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-dtrace">
|
||
<span class="sig-name descname"><span class="pre">--with-dtrace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-dtrace" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable DTrace support (default is no).</p>
|
||
<p>See <a class="reference internal" href="../howto/instrumentation.html#instrumentation"><span class="std std-ref">Instrumenting CPython with DTrace and SystemTap</span></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-address-sanitizer">
|
||
<span class="sig-name descname"><span class="pre">--with-address-sanitizer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-address-sanitizer" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable AddressSanitizer memory error detector, <code class="docutils literal notranslate"><span class="pre">asan</span></code> (default is no).
|
||
To improve ASan detection capabilities you may also want to combine this
|
||
with <a class="reference internal" href="#cmdoption-without-pymalloc"><code class="xref std std-option docutils literal notranslate"><span class="pre">--without-pymalloc</span></code></a> to disable the specialized small-object
|
||
allocator whose allocations are not tracked by ASan.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-memory-sanitizer">
|
||
<span class="sig-name descname"><span class="pre">--with-memory-sanitizer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-memory-sanitizer" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable MemorySanitizer allocation error detector, <code class="docutils literal notranslate"><span class="pre">msan</span></code> (default is no).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-undefined-behavior-sanitizer">
|
||
<span class="sig-name descname"><span class="pre">--with-undefined-behavior-sanitizer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-undefined-behavior-sanitizer" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable UndefinedBehaviorSanitizer undefined behaviour detector, <code class="docutils literal notranslate"><span class="pre">ubsan</span></code>
|
||
(default is no).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-thread-sanitizer">
|
||
<span class="sig-name descname"><span class="pre">--with-thread-sanitizer</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-thread-sanitizer" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable ThreadSanitizer data race detector, <code class="docutils literal notranslate"><span class="pre">tsan</span></code>
|
||
(default is no).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.13.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="id15">
|
||
<h3><span class="section-number">3.3.10. </span>Linker options<a class="headerlink" href="#id15" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-shared">
|
||
<span class="sig-name descname"><span class="pre">--enable-shared</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-shared" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable building a shared Python library: <code class="docutils literal notranslate"><span class="pre">libpython</span></code> (default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-static-libpython">
|
||
<span class="sig-name descname"><span class="pre">--without-static-libpython</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-static-libpython" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Do not build <code class="docutils literal notranslate"><span class="pre">libpythonMAJOR.MINOR.a</span></code> and do not install <code class="docutils literal notranslate"><span class="pre">python.o</span></code>
|
||
(built and enabled by default).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-static-libpython-for-interpreter">
|
||
<span class="sig-name descname"><span class="pre">--enable-static-libpython-for-interpreter</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-static-libpython-for-interpreter" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Do not link the Python interpreter binary (<code class="docutils literal notranslate"><span class="pre">python3</span></code>) against the
|
||
shared Python library; instead, statically link the interpreter
|
||
against <code class="docutils literal notranslate"><span class="pre">libpython</span></code> as if <code class="docutils literal notranslate"><span class="pre">--enable-shared</span></code> had not been used,
|
||
but continue to build the shared <code class="docutils literal notranslate"><span class="pre">libpython</span></code> (for use by other
|
||
programs).</p>
|
||
<p>This option does nothing if <code class="docutils literal notranslate"><span class="pre">--enable-shared</span></code> is not used.</p>
|
||
<p>The default (when <code class="docutils literal notranslate"><span class="pre">-enable-shared</span></code> is used) is to link the Python
|
||
interpreter against the built shared library.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="libraries-options">
|
||
<h3><span class="section-number">3.3.11. </span>Libraries options<a class="headerlink" href="#libraries-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-libs">
|
||
<span class="sig-name descname"><span class="pre">--with-libs</span></span><span class="sig-prename descclassname"><span class="pre">='lib1</span> <span class="pre">...'</span></span><a class="headerlink" href="#cmdoption-with-libs" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Link against additional libraries (default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-system-expat">
|
||
<span class="sig-name descname"><span class="pre">--with-system-expat</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-system-expat" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Build the <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> module using an installed <code class="docutils literal notranslate"><span class="pre">expat</span></code> library
|
||
(default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-system-libmpdec">
|
||
<span class="sig-name descname"><span class="pre">--with-system-libmpdec</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-system-libmpdec" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Build the <code class="docutils literal notranslate"><span class="pre">_decimal</span></code> extension module using an installed <code class="docutils literal notranslate"><span class="pre">mpdecimal</span></code>
|
||
library, see the <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module (default is yes).</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.3.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.13: </span>Default to using the installed <code class="docutils literal notranslate"><span class="pre">mpdecimal</span></code> library.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.15: </span>A bundled copy of the library will no longer be selected
|
||
implicitly if an installed <code class="docutils literal notranslate"><span class="pre">mpdecimal</span></code> library is not found.
|
||
In Python 3.15 only, it can still be selected explicitly using
|
||
<code class="docutils literal notranslate"><span class="pre">--with-system-libmpdec=no</span></code> or <code class="docutils literal notranslate"><span class="pre">--without-system-libmpdec</span></code>.</p>
|
||
</div>
|
||
<div class="deprecated-removed">
|
||
<p><span class="versionmodified deprecated">Deprecated since version 3.13, will be removed in version 3.16: </span>A copy of the <code class="docutils literal notranslate"><span class="pre">mpdecimal</span></code> library sources will no longer be distributed
|
||
with Python 3.16.</p>
|
||
</div>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference internal" href="#cmdoption-arg-LIBMPDEC_CFLAGS"><code class="xref std std-option docutils literal notranslate"><span class="pre">LIBMPDEC_CFLAGS</span></code></a> and <a class="reference internal" href="#cmdoption-arg-LIBMPDEC_LIBS"><code class="xref std std-option docutils literal notranslate"><span class="pre">LIBMPDEC_LIBS</span></code></a>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-readline">
|
||
<span class="sig-name descname"><span class="pre">--with-readline</span></span><span class="sig-prename descclassname"><span class="pre">=readline|editline</span></span><a class="headerlink" href="#cmdoption-with-readline" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Designate a backend library for the <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> module.</p>
|
||
<ul class="simple">
|
||
<li><p>readline: Use readline as the backend.</p></li>
|
||
<li><p>editline: Use editline as the backend.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-without-readline">
|
||
<span class="sig-name descname"><span class="pre">--without-readline</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-without-readline" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Don’t build the <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> module (built by default).</p>
|
||
<p>Don’t define the <code class="docutils literal notranslate"><span class="pre">HAVE_LIBREADLINE</span></code> macro.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-libm">
|
||
<span class="sig-name descname"><span class="pre">--with-libm</span></span><span class="sig-prename descclassname"><span class="pre">=STRING</span></span><a class="headerlink" href="#cmdoption-with-libm" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Override <code class="docutils literal notranslate"><span class="pre">libm</span></code> math library to <em>STRING</em> (default is system-dependent).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-libc">
|
||
<span class="sig-name descname"><span class="pre">--with-libc</span></span><span class="sig-prename descclassname"><span class="pre">=STRING</span></span><a class="headerlink" href="#cmdoption-with-libc" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Override <code class="docutils literal notranslate"><span class="pre">libc</span></code> C library to <em>STRING</em> (default is system-dependent).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-openssl">
|
||
<span class="sig-name descname"><span class="pre">--with-openssl</span></span><span class="sig-prename descclassname"><span class="pre">=DIR</span></span><a class="headerlink" href="#cmdoption-with-openssl" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Root of the OpenSSL directory.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-openssl-rpath">
|
||
<span class="sig-name descname"><span class="pre">--with-openssl-rpath</span></span><span class="sig-prename descclassname"><span class="pre">=[no|auto|DIR]</span></span><a class="headerlink" href="#cmdoption-with-openssl-rpath" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Set runtime library directory (rpath) for OpenSSL libraries:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">no</span></code> (default): don’t set rpath;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">auto</span></code>: auto-detect rpath from <a class="reference internal" href="#cmdoption-with-openssl"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-openssl</span></code></a> and
|
||
<code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>;</p></li>
|
||
<li><p><em>DIR</em>: set an explicit rpath.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="security-options">
|
||
<h3><span class="section-number">3.3.12. </span>Security Options<a class="headerlink" href="#security-options" title="Link to this heading">¶</a></h3>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-hash-algorithm">
|
||
<span class="sig-name descname"><span class="pre">--with-hash-algorithm</span></span><span class="sig-prename descclassname"><span class="pre">=[fnv|siphash13|siphash24]</span></span><a class="headerlink" href="#cmdoption-with-hash-algorithm" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Select hash algorithm for use in <code class="docutils literal notranslate"><span class="pre">Python/pyhash.c</span></code>:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">siphash13</span></code> (default);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">siphash24</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">fnv</span></code>.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.4.</span></p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11: </span><code class="docutils literal notranslate"><span class="pre">siphash13</span></code> is added and it is the new default.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-builtin-hashlib-hashes">
|
||
<span class="sig-name descname"><span class="pre">--with-builtin-hashlib-hashes</span></span><span class="sig-prename descclassname"><span class="pre">=md5,sha1,sha256,sha512,sha3,blake2</span></span><a class="headerlink" href="#cmdoption-with-builtin-hashlib-hashes" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Built-in hash modules:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">md5</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">sha1</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">sha256</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">sha512</span></code>;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">sha3</span></code> (with shake);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">blake2</span></code>.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-ssl-default-suites">
|
||
<span class="sig-name descname"><span class="pre">--with-ssl-default-suites</span></span><span class="sig-prename descclassname"><span class="pre">=[python|openssl|STRING]</span></span><a class="headerlink" href="#cmdoption-with-ssl-default-suites" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Override the OpenSSL default cipher suites string:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">python</span></code> (default): use Python’s preferred selection;</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">openssl</span></code>: leave OpenSSL’s defaults untouched;</p></li>
|
||
<li><p><em>STRING</em>: use a custom string</p></li>
|
||
</ul>
|
||
<p>See the <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.7.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.10: </span>The settings <code class="docutils literal notranslate"><span class="pre">python</span></code> and <em>STRING</em> also set TLS 1.2 as minimum
|
||
protocol version.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-disable-safety">
|
||
<span class="sig-name descname"><span class="pre">--disable-safety</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-disable-safety" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Disable compiler options that are <a class="reference external" href="https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.md">recommended by OpenSSF</a> for security reasons with no performance overhead.
|
||
If this option is not enabled, CPython will be built based on safety compiler options with no slow down.
|
||
When this option is enabled, CPython will not be built with the compiler options listed below.</p>
|
||
<p>The following compiler options are disabled with <code class="xref std std-option docutils literal notranslate"><span class="pre">--disable-safety</span></code>:</p>
|
||
<ul class="simple">
|
||
<li><p><a class="reference external" href="https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.md#enable-run-time-checks-for-stack-based-buffer-overflows">-fstack-protector-strong</a>: Enable run-time checks for stack-based buffer overflows.</p></li>
|
||
<li><p><a class="reference external" href="https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.md#enable-warning-about-trampolines-that-require-executable-stacks">-Wtrampolines</a>: Enable warnings about trampolines that require executable stacks.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-slower-safety">
|
||
<span class="sig-name descname"><span class="pre">--enable-slower-safety</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-slower-safety" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Enable compiler options that are <a class="reference external" href="https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.md">recommended by OpenSSF</a> for security reasons which require overhead.
|
||
If this option is not enabled, CPython will not be built based on safety compiler options which performance impact.
|
||
When this option is enabled, CPython will be built with the compiler options listed below.</p>
|
||
<p>The following compiler options are enabled with <code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-slower-safety</span></code>:</p>
|
||
<ul class="simple">
|
||
<li><p><a class="reference external" href="https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.md#fortify-sources-for-unsafe-libc-usage-and-buffer-overflows">-D_FORTIFY_SOURCE=3</a>: Fortify sources with compile- and run-time checks for unsafe libc usage and buffer overflows.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="macos-options">
|
||
<h3><span class="section-number">3.3.13. </span>macOS Options<a class="headerlink" href="#macos-options" title="Link to this heading">¶</a></h3>
|
||
<p>See <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/3.15/Mac/README.rst">Mac/README.rst</a>.</p>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-universalsdk">
|
||
<span class="sig-name descname"><span class="pre">--enable-universalsdk</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-universalsdk" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-0">
|
||
<span class="sig-name descname"><span class="pre">--enable-universalsdk</span></span><span class="sig-prename descclassname"><span class="pre">=SDKDIR</span></span><a class="headerlink" href="#cmdoption-0" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Create a universal binary build. <em>SDKDIR</em> specifies which macOS SDK should
|
||
be used to perform the build (default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-enable-framework">
|
||
<span class="sig-name descname"><span class="pre">--enable-framework</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-enable-framework" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-1">
|
||
<span class="sig-name descname"><span class="pre">--enable-framework</span></span><span class="sig-prename descclassname"><span class="pre">=INSTALLDIR</span></span><a class="headerlink" href="#cmdoption-1" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Create a Python.framework rather than a traditional Unix install. Optional
|
||
<em>INSTALLDIR</em> specifies the installation path (default is no).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-universal-archs">
|
||
<span class="sig-name descname"><span class="pre">--with-universal-archs</span></span><span class="sig-prename descclassname"><span class="pre">=ARCH</span></span><a class="headerlink" href="#cmdoption-with-universal-archs" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Specify the kind of universal binary that should be created. This option is
|
||
only valid when <a class="reference internal" href="#cmdoption-enable-universalsdk"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-universalsdk</span></code></a> is set.</p>
|
||
<p>Options:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">universal2</span></code> (x86-64 and arm64);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">32-bit</span></code> (PPC and i386);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">64-bit</span></code> (PPC64 and x86-64);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">3-way</span></code> (i386, PPC and x86-64);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">intel</span></code> (i386 and x86-64);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">intel-32</span></code> (i386);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">intel-64</span></code> (x86-64);</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">all</span></code> (PPC, i386, PPC64 and x86-64).</p></li>
|
||
</ul>
|
||
<p>Note that values for this configuration item are <em>not</em> the same as the
|
||
identifiers used for universal binary wheels on macOS. See the Python
|
||
Packaging User Guide for details on the <a class="reference external" href="https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/#macos">packaging platform compatibility
|
||
tags used on macOS</a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-framework-name">
|
||
<span class="sig-name descname"><span class="pre">--with-framework-name</span></span><span class="sig-prename descclassname"><span class="pre">=FRAMEWORK</span></span><a class="headerlink" href="#cmdoption-with-framework-name" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Specify the name for the python framework on macOS only valid when
|
||
<a class="reference internal" href="#cmdoption-enable-framework"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-framework</span></code></a> is set (default: <code class="docutils literal notranslate"><span class="pre">Python</span></code>).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-app-store-compliance">
|
||
<span class="sig-name descname"><span class="pre">--with-app-store-compliance</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-with-app-store-compliance" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-2">
|
||
<span class="sig-name descname"><span class="pre">--with-app-store-compliance</span></span><span class="sig-prename descclassname"><span class="pre">=PATCH-FILE</span></span><a class="headerlink" href="#cmdoption-2" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The Python standard library contains strings that are known to trigger
|
||
automated inspection tool errors when submitted for distribution by
|
||
the macOS and iOS App Stores. If enabled, this option will apply the list of
|
||
patches that are known to correct app store compliance. A custom patch
|
||
file can also be specified. This option is disabled by default.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.13.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="ios-options">
|
||
<h3><span class="section-number">3.3.14. </span>iOS Options<a class="headerlink" href="#ios-options" title="Link to this heading">¶</a></h3>
|
||
<p>See <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/3.15/Platforms/Apple/iOS/README.md">Platforms/Apple/iOS/README.md</a>.</p>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-3">
|
||
<span class="sig-name descname"><span class="pre">--enable-framework</span></span><span class="sig-prename descclassname"><span class="pre">=INSTALLDIR</span></span><a class="headerlink" href="#cmdoption-3" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Create a Python.framework. Unlike macOS, the <em>INSTALLDIR</em> argument
|
||
specifying the installation path is mandatory.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-4">
|
||
<span class="sig-name descname"><span class="pre">--with-framework-name</span></span><span class="sig-prename descclassname"><span class="pre">=FRAMEWORK</span></span><a class="headerlink" href="#cmdoption-4" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Specify the name for the framework (default: <code class="docutils literal notranslate"><span class="pre">Python</span></code>).</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="cross-compiling-options">
|
||
<h3><span class="section-number">3.3.15. </span>Cross Compiling Options<a class="headerlink" href="#cross-compiling-options" title="Link to this heading">¶</a></h3>
|
||
<p>Cross compiling, also known as cross building, can be used to build Python
|
||
for another CPU architecture or platform. Cross compiling requires a Python
|
||
interpreter for the build platform. The version of the build Python must match
|
||
the version of the cross compiled host Python.</p>
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-build">
|
||
<span class="sig-name descname"><span class="pre">--build</span></span><span class="sig-prename descclassname"><span class="pre">=BUILD</span></span><a class="headerlink" href="#cmdoption-build" title="Link to this definition">¶</a></dt>
|
||
<dd><p>configure for building on BUILD, usually guessed by <strong class="program">config.guess</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-host">
|
||
<span class="sig-name descname"><span class="pre">--host</span></span><span class="sig-prename descclassname"><span class="pre">=HOST</span></span><a class="headerlink" href="#cmdoption-host" title="Link to this definition">¶</a></dt>
|
||
<dd><p>cross-compile to build programs to run on HOST (target platform)</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-with-build-python">
|
||
<span class="sig-name descname"><span class="pre">--with-build-python</span></span><span class="sig-prename descclassname"><span class="pre">=path/to/python</span></span><a class="headerlink" href="#cmdoption-with-build-python" title="Link to this definition">¶</a></dt>
|
||
<dd><p>path to build <code class="docutils literal notranslate"><span class="pre">python</span></code> binary for cross compiling</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-CONFIG_SITE">
|
||
<span class="sig-name descname"><span class="pre">CONFIG_SITE</span></span><span class="sig-prename descclassname"><span class="pre">=file</span></span><a class="headerlink" href="#cmdoption-arg-CONFIG_SITE" title="Link to this definition">¶</a></dt>
|
||
<dd><p>An environment variable that points to a file with configure overrides.</p>
|
||
<p>Example <em>config.site</em> file:</p>
|
||
<div class="highlight-ini notranslate"><div class="highlight"><pre><span></span><span class="c1"># config.site-aarch64</span>
|
||
<span class="na">ac_cv_buggy_getaddrinfo</span><span class="o">=</span><span class="s">no</span>
|
||
<span class="na">ac_cv_file__dev_ptmx</span><span class="o">=</span><span class="s">yes</span>
|
||
<span class="na">ac_cv_file__dev_ptc</span><span class="o">=</span><span class="s">no</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std option">
|
||
<dt class="sig sig-object std" id="cmdoption-arg-HOSTRUNNER">
|
||
<span class="sig-name descname"><span class="pre">HOSTRUNNER</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-arg-HOSTRUNNER" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Program to run CPython for the host platform for cross-compilation.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<p>Cross compiling example:</p>
|
||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">CONFIG_SITE</span><span class="o">=</span>config.site-aarch64<span class="w"> </span>../configure<span class="w"> </span><span class="se">\</span>
|
||
<span class="w"> </span>--build<span class="o">=</span>x86_64-pc-linux-gnu<span class="w"> </span><span class="se">\</span>
|
||
<span class="w"> </span>--host<span class="o">=</span>aarch64-unknown-linux-gnu<span class="w"> </span><span class="se">\</span>
|
||
<span class="w"> </span>--with-build-python<span class="o">=</span>../x86_64/python
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="python-build-system">
|
||
<h2><span class="section-number">3.4. </span>Python Build System<a class="headerlink" href="#python-build-system" title="Link to this heading">¶</a></h2>
|
||
<section id="main-files-of-the-build-system">
|
||
<h3><span class="section-number">3.4.1. </span>Main files of the build system<a class="headerlink" href="#main-files-of-the-build-system" title="Link to this heading">¶</a></h3>
|
||
<ul class="simple">
|
||
<li><p><code class="file docutils literal notranslate"><span class="pre">configure.ac</span></code> => <code class="file docutils literal notranslate"><span class="pre">configure</span></code>;</p></li>
|
||
<li><p><code class="file docutils literal notranslate"><span class="pre">Makefile.pre.in</span></code> => <code class="file docutils literal notranslate"><span class="pre">Makefile</span></code> (created by <code class="file docutils literal notranslate"><span class="pre">configure</span></code>);</p></li>
|
||
<li><p><code class="file docutils literal notranslate"><span class="pre">pyconfig.h</span></code> (created by <code class="file docutils literal notranslate"><span class="pre">configure</span></code>);</p></li>
|
||
<li><p><code class="file docutils literal notranslate"><span class="pre">Modules/Setup</span></code>: C extensions built by the Makefile using
|
||
<code class="file docutils literal notranslate"><span class="pre">Module/makesetup</span></code> shell script;</p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="main-build-steps">
|
||
<h3><span class="section-number">3.4.2. </span>Main build steps<a class="headerlink" href="#main-build-steps" title="Link to this heading">¶</a></h3>
|
||
<ul class="simple">
|
||
<li><p>C files (<code class="docutils literal notranslate"><span class="pre">.c</span></code>) are built as object files (<code class="docutils literal notranslate"><span class="pre">.o</span></code>).</p></li>
|
||
<li><p>A static <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library (<code class="docutils literal notranslate"><span class="pre">.a</span></code>) is created from objects files.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">python.o</span></code> and the static <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library are linked into the
|
||
final <code class="docutils literal notranslate"><span class="pre">python</span></code> program.</p></li>
|
||
<li><p>C extensions are built by the Makefile (see <code class="file docutils literal notranslate"><span class="pre">Modules/Setup</span></code>).</p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="main-makefile-targets">
|
||
<h3><span class="section-number">3.4.3. </span>Main Makefile targets<a class="headerlink" href="#main-makefile-targets" title="Link to this heading">¶</a></h3>
|
||
<section id="make">
|
||
<h4><span class="section-number">3.4.3.1. </span>make<a class="headerlink" href="#make" title="Link to this heading">¶</a></h4>
|
||
<p>For the most part, when rebuilding after editing some code or
|
||
refreshing your checkout from upstream, all you need to do is execute
|
||
<code class="docutils literal notranslate"><span class="pre">make</span></code>, which (per Make’s semantics) builds the default target, the
|
||
first one defined in the Makefile. By tradition (including in the
|
||
CPython project) this is usually the <code class="docutils literal notranslate"><span class="pre">all</span></code> target. The
|
||
<code class="docutils literal notranslate"><span class="pre">configure</span></code> script expands an <code class="docutils literal notranslate"><span class="pre">autoconf</span></code> variable,
|
||
<code class="docutils literal notranslate"><span class="pre">@DEF_MAKE_ALL_RULE@</span></code> to describe precisely which targets <code class="docutils literal notranslate"><span class="pre">make</span>
|
||
<span class="pre">all</span></code> will build. The three choices are:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">profile-opt</span></code> (configured with <code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code>)</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">build_wasm</span></code> (chosen if the host platform matches <code class="docutils literal notranslate"><span class="pre">wasm32-wasi*</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code>)</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">build_all</span></code> (configured without explicitly using either of the others)</p></li>
|
||
</ul>
|
||
<p>Depending on the most recent source file changes, Make will rebuild
|
||
any targets (object files and executables) deemed out-of-date,
|
||
including running <code class="docutils literal notranslate"><span class="pre">configure</span></code> again if necessary. Source/target
|
||
dependencies are many and maintained manually however, so Make
|
||
sometimes doesn’t have all the information necessary to correctly
|
||
detect all targets which need to be rebuilt. Depending on which
|
||
targets aren’t rebuilt, you might experience a number of problems. If
|
||
you have build or test problems which you can’t otherwise explain,
|
||
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span> <span class="pre">&&</span> <span class="pre">make</span></code> should work around most dependency problems, at
|
||
the expense of longer build times.</p>
|
||
</section>
|
||
<section id="make-platform">
|
||
<h4><span class="section-number">3.4.3.2. </span>make platform<a class="headerlink" href="#make-platform" title="Link to this heading">¶</a></h4>
|
||
<p>Build the <code class="docutils literal notranslate"><span class="pre">python</span></code> program, but don’t build the standard library
|
||
extension modules. This generates a file named <code class="docutils literal notranslate"><span class="pre">platform</span></code> which
|
||
contains a single line describing the details of the build platform,
|
||
e.g., <code class="docutils literal notranslate"><span class="pre">macosx-14.3-arm64-3.12</span></code> or <code class="docutils literal notranslate"><span class="pre">linux-x86_64-3.13</span></code>.</p>
|
||
</section>
|
||
<section id="make-profile-opt">
|
||
<h4><span class="section-number">3.4.3.3. </span>make profile-opt<a class="headerlink" href="#make-profile-opt" title="Link to this heading">¶</a></h4>
|
||
<p>Build Python using profile-guided optimization (PGO). You can use the
|
||
configure <a class="reference internal" href="#cmdoption-enable-optimizations"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-optimizations</span></code></a> option to make this the
|
||
default target of the <code class="docutils literal notranslate"><span class="pre">make</span></code> command (<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">all</span></code> or just
|
||
<code class="docutils literal notranslate"><span class="pre">make</span></code>).</p>
|
||
</section>
|
||
<section id="make-clean">
|
||
<h4><span class="section-number">3.4.3.4. </span>make clean<a class="headerlink" href="#make-clean" title="Link to this heading">¶</a></h4>
|
||
<p>Remove built files.</p>
|
||
</section>
|
||
<section id="make-distclean">
|
||
<h4><span class="section-number">3.4.3.5. </span>make distclean<a class="headerlink" href="#make-distclean" title="Link to this heading">¶</a></h4>
|
||
<p>In addition to the work done by <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span></code>, remove files
|
||
created by the configure script. <code class="docutils literal notranslate"><span class="pre">configure</span></code> will have to be run
|
||
before building again. <a class="footnote-reference brackets" href="#id18" id="id16" role="doc-noteref"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></a></p>
|
||
</section>
|
||
<section id="make-install">
|
||
<h4><span class="section-number">3.4.3.6. </span>make install<a class="headerlink" href="#make-install" title="Link to this heading">¶</a></h4>
|
||
<p>Build the <code class="docutils literal notranslate"><span class="pre">all</span></code> target and install Python.</p>
|
||
</section>
|
||
<section id="make-test">
|
||
<h4><span class="section-number">3.4.3.7. </span>make test<a class="headerlink" href="#make-test" title="Link to this heading">¶</a></h4>
|
||
<p>Build the <code class="docutils literal notranslate"><span class="pre">all</span></code> target and run the Python test suite with the
|
||
<code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> option without GUI tests. Variables:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">TESTOPTS</span></code>: additional regrtest command-line options.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">TESTPYTHONOPTS</span></code>: additional Python command-line options.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">TESTTIMEOUT</span></code>: timeout in seconds (default: 10 minutes).</p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="make-ci">
|
||
<h4><span class="section-number">3.4.3.8. </span>make ci<a class="headerlink" href="#make-ci" title="Link to this heading">¶</a></h4>
|
||
<p>This is similar to <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>, but uses the <code class="docutils literal notranslate"><span class="pre">-ugui</span></code> to also run GUI tests.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.</span></p>
|
||
</div>
|
||
</section>
|
||
<section id="make-buildbottest">
|
||
<h4><span class="section-number">3.4.3.9. </span>make buildbottest<a class="headerlink" href="#make-buildbottest" title="Link to this heading">¶</a></h4>
|
||
<p>This is similar to <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>, but uses the <code class="docutils literal notranslate"><span class="pre">--slow-ci</span></code>
|
||
option and default timeout of 20 minutes, instead of <code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> option.</p>
|
||
</section>
|
||
<section id="make-regen-all">
|
||
<h4><span class="section-number">3.4.3.10. </span>make regen-all<a class="headerlink" href="#make-regen-all" title="Link to this heading">¶</a></h4>
|
||
<p>Regenerate (almost) all generated files. These include (but are not
|
||
limited to) bytecode cases, and parser generator file.
|
||
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-stdlib-module-names</span></code> and <code class="docutils literal notranslate"><span class="pre">autoconf</span></code> must be run
|
||
separately for the remaining <a class="reference external" href="#generated-files">generated files</a>.</p>
|
||
</section>
|
||
</section>
|
||
<section id="c-extensions">
|
||
<h3><span class="section-number">3.4.4. </span>C extensions<a class="headerlink" href="#c-extensions" title="Link to this heading">¶</a></h3>
|
||
<p>Some C extensions are built as built-in modules, like the <code class="docutils literal notranslate"><span class="pre">sys</span></code> module.
|
||
They are built with the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_BUILTIN</span></code> macro defined.
|
||
Built-in modules have no <code class="docutils literal notranslate"><span class="pre">__file__</span></code> attribute:</p>
|
||
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
|
||
<span class="gp">>>> </span><span class="n">sys</span>
|
||
<span class="go"><module 'sys' (built-in)></span>
|
||
<span class="gp">>>> </span><span class="n">sys</span><span class="o">.</span><span class="vm">__file__</span>
|
||
<span class="gt">Traceback (most recent call last):</span>
|
||
File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n"><module></span>
|
||
<span class="gr">AttributeError</span>: <span class="n">module 'sys' has no attribute '__file__'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Other C extensions are built as dynamic libraries, like the <code class="docutils literal notranslate"><span class="pre">_asyncio</span></code> module.
|
||
They are built with the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> macro defined.
|
||
Example on Linux x86-64:</p>
|
||
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">_asyncio</span>
|
||
<span class="gp">>>> </span><span class="n">_asyncio</span>
|
||
<span class="go"><module '_asyncio' from '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'></span>
|
||
<span class="gp">>>> </span><span class="n">_asyncio</span><span class="o">.</span><span class="vm">__file__</span>
|
||
<span class="go">'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="file docutils literal notranslate"><span class="pre">Modules/Setup</span></code> is used to generate Makefile targets to build C extensions.
|
||
At the beginning of the files, C extensions are built as built-in modules.
|
||
Extensions defined after the <code class="docutils literal notranslate"><span class="pre">*shared*</span></code> marker are built as dynamic libraries.</p>
|
||
<p>The <code class="xref c c-macro docutils literal notranslate"><span class="pre">PyAPI_FUNC()</span></code>, <code class="xref c c-macro docutils literal notranslate"><span class="pre">PyAPI_DATA()</span></code> and
|
||
<a class="reference internal" href="../c-api/extension-modules.html#c.PyMODINIT_FUNC" title="PyMODINIT_FUNC"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyMODINIT_FUNC</span></code></a> macros of <code class="file docutils literal notranslate"><span class="pre">Include/exports.h</span></code> are defined
|
||
differently depending if the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> macro is defined:</p>
|
||
<ul class="simple">
|
||
<li><p>Use <code class="docutils literal notranslate"><span class="pre">Py_EXPORTED_SYMBOL</span></code> if the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> is defined</p></li>
|
||
<li><p>Use <code class="docutils literal notranslate"><span class="pre">Py_IMPORTED_SYMBOL</span></code> otherwise.</p></li>
|
||
</ul>
|
||
<p>If the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_BUILTIN</span></code> macro is used by mistake on a C extension
|
||
built as a shared library, its <code class="samp docutils literal notranslate"><span class="pre">PyInit_</span><em><span class="pre">xxx</span></em><span class="pre">()</span></code> function is not exported,
|
||
causing an <a class="reference internal" href="../builtins/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> on import.</p>
|
||
</section>
|
||
</section>
|
||
<section id="compiler-and-linker-flags">
|
||
<h2><span class="section-number">3.5. </span>Compiler and linker flags<a class="headerlink" href="#compiler-and-linker-flags" title="Link to this heading">¶</a></h2>
|
||
<p>Options set by the <code class="docutils literal notranslate"><span class="pre">./configure</span></code> script and environment variables and used by
|
||
<code class="docutils literal notranslate"><span class="pre">Makefile</span></code>.</p>
|
||
<section id="preprocessor-flags">
|
||
<h3><span class="section-number">3.5.1. </span>Preprocessor flags<a class="headerlink" href="#preprocessor-flags" title="Link to this heading">¶</a></h3>
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_CPPFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_CPPFLAGS</span></span><a class="headerlink" href="#envvar-CONFIGURE_CPPFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-19"></span><a class="reference internal" href="#envvar-CPPFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CPPFLAGS</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code> script.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CPPFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CPPFLAGS</span></span><a class="headerlink" href="#envvar-CPPFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>(Objective) C/C++ preprocessor flags, e.g. <code class="samp docutils literal notranslate"><span class="pre">-I</span><em><span class="pre">include_dir</span></em></code> if you have
|
||
headers in a nonstandard directory <em>include_dir</em>.</p>
|
||
<p>Both <span class="target" id="index-20"></span><a class="reference internal" href="#envvar-CPPFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CPPFLAGS</span></code></a> and <span class="target" id="index-21"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> need to contain the shell’s
|
||
value to be able to build extension modules using the
|
||
directories specified in the environment variables.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-BASECPPFLAGS">
|
||
<span class="sig-name descname"><span class="pre">BASECPPFLAGS</span></span><a class="headerlink" href="#envvar-BASECPPFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.4.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CPPFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_CPPFLAGS</span></span><a class="headerlink" href="#envvar-PY_CPPFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Extra preprocessor flags added for building the interpreter object files.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(BASECPPFLAGS)</span> <span class="pre">-I.</span> <span class="pre">-I$(srcdir)/Include</span> <span class="pre">$(CONFIGURE_CPPFLAGS)</span> <span class="pre">$(CPPFLAGS)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="compiler-flags">
|
||
<h3><span class="section-number">3.5.2. </span>Compiler flags<a class="headerlink" href="#compiler-flags" title="Link to this heading">¶</a></h3>
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CC">
|
||
<span class="sig-name descname"><span class="pre">CC</span></span><a class="headerlink" href="#envvar-CC" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler command.</p>
|
||
<p>Example: <code class="docutils literal notranslate"><span class="pre">gcc</span> <span class="pre">-pthread</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CXX">
|
||
<span class="sig-name descname"><span class="pre">CXX</span></span><a class="headerlink" href="#envvar-CXX" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C++ compiler command.</p>
|
||
<p>Example: <code class="docutils literal notranslate"><span class="pre">g++</span> <span class="pre">-pthread</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CFLAGS</span></span><a class="headerlink" href="#envvar-CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C compiler flags.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">CFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-CFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p><span class="target" id="index-22"></span><a class="reference internal" href="#envvar-CFLAGS_NODIST"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code></a> is used for building the interpreter and stdlib C
|
||
extensions. Use it when a compiler flag should <em>not</em> be part of
|
||
<span class="target" id="index-23"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a> once Python is installed (<a class="reference external" href="https://github.com/python/cpython/issues/65320">gh-65320</a>).</p>
|
||
<p>In particular, <span class="target" id="index-24"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a> should not contain:</p>
|
||
<ul class="simple">
|
||
<li><p>the compiler flag <code class="docutils literal notranslate"><span class="pre">-I</span></code> (for setting the search path for include files).
|
||
The <code class="docutils literal notranslate"><span class="pre">-I</span></code> flags are processed from left to right, and any flags in
|
||
<span class="target" id="index-25"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a> would take precedence over user- and package-supplied <code class="docutils literal notranslate"><span class="pre">-I</span></code>
|
||
flags.</p></li>
|
||
<li><p>hardening flags such as <code class="docutils literal notranslate"><span class="pre">-Werror</span></code> because distributions cannot control
|
||
whether packages installed by users conform to such heightened
|
||
standards.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-COMPILEALL_OPTS">
|
||
<span class="sig-name descname"><span class="pre">COMPILEALL_OPTS</span></span><a class="headerlink" href="#envvar-COMPILEALL_OPTS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Options passed to the <a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a> command line when building PYC files
|
||
in <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. Default: <code class="docutils literal notranslate"><span class="pre">-j0</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.12.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-EXTRA_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">EXTRA_CFLAGS</span></span><a class="headerlink" href="#envvar-EXTRA_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Extra C compiler flags.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_CFLAGS</span></span><a class="headerlink" href="#envvar-CONFIGURE_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-26"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code>
|
||
script.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_CFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_CFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-CONFIGURE_CFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-27"></span><a class="reference internal" href="#envvar-CFLAGS_NODIST"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code>
|
||
script.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-BASECFLAGS">
|
||
<span class="sig-name descname"><span class="pre">BASECFLAGS</span></span><a class="headerlink" href="#envvar-BASECFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Base compiler flags.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-OPT">
|
||
<span class="sig-name descname"><span class="pre">OPT</span></span><a class="headerlink" href="#envvar-OPT" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Optimization flags.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CFLAGS_ALIASING">
|
||
<span class="sig-name descname"><span class="pre">CFLAGS_ALIASING</span></span><a class="headerlink" href="#envvar-CFLAGS_ALIASING" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Strict or non-strict aliasing flags used to compile <code class="docutils literal notranslate"><span class="pre">Python/dtoa.c</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CFLAGS_CEVAL">
|
||
<span class="sig-name descname"><span class="pre">CFLAGS_CEVAL</span></span><a class="headerlink" href="#envvar-CFLAGS_CEVAL" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Flags used to compile <code class="docutils literal notranslate"><span class="pre">Python/ceval.c</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.14.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CCSHARED">
|
||
<span class="sig-name descname"><span class="pre">CCSHARED</span></span><a class="headerlink" href="#envvar-CCSHARED" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Compiler flags used to build a shared library.</p>
|
||
<p>For example, <code class="docutils literal notranslate"><span class="pre">-fPIC</span></code> is used on Linux and on BSD.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CFLAGSFORSHARED">
|
||
<span class="sig-name descname"><span class="pre">CFLAGSFORSHARED</span></span><a class="headerlink" href="#envvar-CFLAGSFORSHARED" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Extra C flags added for building the interpreter object files.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(CCSHARED)</span></code> when <a class="reference internal" href="#cmdoption-enable-shared"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-shared</span></code></a> is used, or an empty
|
||
string otherwise.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_CFLAGS</span></span><a class="headerlink" href="#envvar-PY_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">$(BASECFLAGS)</span> <span class="pre">$(OPT)</span> <span class="pre">$(CONFIGURE_CFLAGS)</span> <span class="pre">$(CFLAGS)</span> <span class="pre">$(EXTRA_CFLAGS)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">PY_CFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-PY_CFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">$(CONFIGURE_CFLAGS_NODIST)</span> <span class="pre">$(CFLAGS_NODIST)</span> <span class="pre">-I$(srcdir)/Include/internal</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_STDMODULE_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_STDMODULE_CFLAGS</span></span><a class="headerlink" href="#envvar-PY_STDMODULE_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>C flags used for building the interpreter object files.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(PY_CFLAGS)</span> <span class="pre">$(PY_CFLAGS_NODIST)</span> <span class="pre">$(PY_CPPFLAGS)</span> <span class="pre">$(CFLAGSFORSHARED)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CORE_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_CORE_CFLAGS</span></span><a class="headerlink" href="#envvar-PY_CORE_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">$(PY_STDMODULE_CFLAGS)</span> <span class="pre">-DPy_BUILD_CORE</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_BUILTIN_MODULE_CFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_BUILTIN_MODULE_CFLAGS</span></span><a class="headerlink" href="#envvar-PY_BUILTIN_MODULE_CFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Compiler flags to build a standard library extension module as a built-in
|
||
module, like the <a class="reference internal" href="../library/posix.html#module-posix" title="posix: The most common POSIX system calls (normally used via module os)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">posix</span></code></a> module.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(PY_STDMODULE_CFLAGS)</span> <span class="pre">-DPy_BUILD_CORE_BUILTIN</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PURIFY">
|
||
<span class="sig-name descname"><span class="pre">PURIFY</span></span><a class="headerlink" href="#envvar-PURIFY" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Purify command. Purify is a memory debugger program.</p>
|
||
<p>Default: empty string (not used).</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="linker-flags">
|
||
<h3><span class="section-number">3.5.3. </span>Linker flags<a class="headerlink" href="#linker-flags" title="Link to this heading">¶</a></h3>
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-LINKCC">
|
||
<span class="sig-name descname"><span class="pre">LINKCC</span></span><a class="headerlink" href="#envvar-LINKCC" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker command used to build programs like <code class="docutils literal notranslate"><span class="pre">python</span></code> and <code class="docutils literal notranslate"><span class="pre">_testembed</span></code>.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(PURIFY)</span> <span class="pre">$(CC)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_LDFLAGS</span></span><a class="headerlink" href="#envvar-CONFIGURE_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-28"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code> script.</p>
|
||
<p>Avoid assigning <span class="target" id="index-29"></span><a class="reference internal" href="#envvar-CFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS</span></code></a>, <span class="target" id="index-30"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a>, etc. so users can use
|
||
them on the command line to append to these values without stomping the
|
||
pre-set values.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-LDFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">LDFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-LDFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p><span class="target" id="index-31"></span><a class="reference internal" href="#envvar-LDFLAGS_NODIST"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS_NODIST</span></code></a> is used in the same manner as
|
||
<span class="target" id="index-32"></span><a class="reference internal" href="#envvar-CFLAGS_NODIST"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code></a>. Use it when a linker flag should <em>not</em> be part of
|
||
<span class="target" id="index-33"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> once Python is installed (<a class="reference external" href="https://github.com/python/cpython/issues/65320">gh-65320</a>).</p>
|
||
<p>In particular, <span class="target" id="index-34"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> should not contain:</p>
|
||
<ul class="simple">
|
||
<li><p>the compiler flag <code class="docutils literal notranslate"><span class="pre">-L</span></code> (for setting the search path for libraries).
|
||
The <code class="docutils literal notranslate"><span class="pre">-L</span></code> flags are processed from left to right, and any flags in
|
||
<span class="target" id="index-35"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> would take precedence over user- and package-supplied <code class="docutils literal notranslate"><span class="pre">-L</span></code>
|
||
flags.</p></li>
|
||
</ul>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_LDFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_LDFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-CONFIGURE_LDFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-36"></span><a class="reference internal" href="#envvar-LDFLAGS_NODIST"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS_NODIST</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code>
|
||
script.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">LDFLAGS</span></span><a class="headerlink" href="#envvar-LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags, e.g. <code class="samp docutils literal notranslate"><span class="pre">-L</span><em><span class="pre">lib_dir</span></em></code> if you have libraries in a nonstandard
|
||
directory <em>lib_dir</em>.</p>
|
||
<p>Both <span class="target" id="index-37"></span><a class="reference internal" href="#envvar-CPPFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CPPFLAGS</span></code></a> and <span class="target" id="index-38"></span><a class="reference internal" href="#envvar-LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">LDFLAGS</span></code></a> need to contain the shell’s
|
||
value to be able to build extension modules using the
|
||
directories specified in the environment variables.</p>
|
||
<p>Please consider using <code class="docutils literal notranslate"><span class="pre">EXE_LDFLAGS</span></code> if the supplied linker flags are
|
||
executable specific, e.g. GCC’s <code class="docutils literal notranslate"><span class="pre">-pie</span></code> flag.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-LIBS">
|
||
<span class="sig-name descname"><span class="pre">LIBS</span></span><a class="headerlink" href="#envvar-LIBS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags to pass libraries to the linker when linking the Python
|
||
executable.</p>
|
||
<p>Example: <code class="docutils literal notranslate"><span class="pre">-lrt</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-LDSHARED">
|
||
<span class="sig-name descname"><span class="pre">LDSHARED</span></span><a class="headerlink" href="#envvar-LDSHARED" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Command to build a shared library.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">@LDSHARED@</span> <span class="pre">$(PY_LDFLAGS)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-BLDSHARED">
|
||
<span class="sig-name descname"><span class="pre">BLDSHARED</span></span><a class="headerlink" href="#envvar-BLDSHARED" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Command to build <code class="docutils literal notranslate"><span class="pre">libpython</span></code> shared library.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">@BLDSHARED@</span> <span class="pre">$(PY_CORE_LDFLAGS)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_LDFLAGS</span></span><a class="headerlink" href="#envvar-PY_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">$(CONFIGURE_LDFLAGS)</span> <span class="pre">$(LDFLAGS)</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_LDFLAGS_NODIST">
|
||
<span class="sig-name descname"><span class="pre">PY_LDFLAGS_NODIST</span></span><a class="headerlink" href="#envvar-PY_LDFLAGS_NODIST" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">$(CONFIGURE_LDFLAGS_NODIST)</span> <span class="pre">$(LDFLAGS_NODIST)</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CORE_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_CORE_LDFLAGS</span></span><a class="headerlink" href="#envvar-PY_CORE_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags used for building the interpreter object files.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-EXE_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">EXE_LDFLAGS</span></span><a class="headerlink" href="#envvar-EXE_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags used for building executable targets such as the
|
||
interpreter. If supplied, <span class="target" id="index-39"></span><a class="reference internal" href="#envvar-PY_CORE_EXE_LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PY_CORE_EXE_LDFLAGS</span></code></a>
|
||
will be used in replacement of <span class="target" id="index-40"></span><a class="reference internal" href="#envvar-PY_CORE_LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PY_CORE_LDFLAGS</span></code></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-CONFIGURE_EXE_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">CONFIGURE_EXE_LDFLAGS</span></span><a class="headerlink" href="#envvar-CONFIGURE_EXE_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Value of <span class="target" id="index-41"></span><a class="reference internal" href="#envvar-EXE_LDFLAGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">EXE_LDFLAGS</span></code></a> variable passed to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code>
|
||
script.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="std envvar">
|
||
<dt class="sig sig-object std" id="envvar-PY_CORE_EXE_LDFLAGS">
|
||
<span class="sig-name descname"><span class="pre">PY_CORE_EXE_LDFLAGS</span></span><a class="headerlink" href="#envvar-PY_CORE_EXE_LDFLAGS" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Linker flags used for building the interpreter and
|
||
executable targets.</p>
|
||
<p>Default: <code class="docutils literal notranslate"><span class="pre">$(PY_CORE_LDFLAGS)</span></code></p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.15.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<p class="rubric">Footnotes</p>
|
||
<aside class="footnote-list brackets">
|
||
<aside class="footnote brackets" id="id18" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id16">7</a><span class="fn-bracket">]</span></span>
|
||
<p><code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clean</span> <span class="pre">-fdx</span></code> is an even more extreme way to “clean” your
|
||
checkout. It removes all files not known to Git.
|
||
When bug hunting using <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">bisect</span></code>, this is
|
||
<a class="reference external" href="https://github.com/python/cpython/issues/114505#issuecomment-1907021718">recommended between probes</a>
|
||
to guarantee a completely clean build. <strong>Use with care</strong>, as it
|
||
will delete all files not checked into Git, including your
|
||
new, uncommitted work.</p>
|
||
</aside>
|
||
</aside>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
<div class="clearer"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||
<div class="sphinxsidebarwrapper">
|
||
<div>
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">3. Configure Python</a><ul>
|
||
<li><a class="reference internal" href="#build-requirements">3.1. Build Requirements</a><ul>
|
||
<li><a class="reference internal" href="#requirements-for-optional-modules">3.1.1. Requirements for optional modules</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#generated-files">3.2. Generated files</a><ul>
|
||
<li><a class="reference internal" href="#configure-script">3.2.1. configure script</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#configure-options">3.3. Configure Options</a><ul>
|
||
<li><a class="reference internal" href="#general-options">3.3.1. General Options</a></li>
|
||
<li><a class="reference internal" href="#c-compiler-options">3.3.2. C compiler options</a></li>
|
||
<li><a class="reference internal" href="#linker-options">3.3.3. Linker options</a></li>
|
||
<li><a class="reference internal" href="#options-for-third-party-dependencies">3.3.4. Options for third-party dependencies</a></li>
|
||
<li><a class="reference internal" href="#webassembly-options">3.3.5. WebAssembly Options</a></li>
|
||
<li><a class="reference internal" href="#install-options">3.3.6. Install Options</a></li>
|
||
<li><a class="reference internal" href="#performance-options">3.3.7. Performance options</a></li>
|
||
<li><a class="reference internal" href="#python-debug-build">3.3.8. Python Debug Build</a></li>
|
||
<li><a class="reference internal" href="#debug-options">3.3.9. Debug options</a></li>
|
||
<li><a class="reference internal" href="#id15">3.3.10. Linker options</a></li>
|
||
<li><a class="reference internal" href="#libraries-options">3.3.11. Libraries options</a></li>
|
||
<li><a class="reference internal" href="#security-options">3.3.12. Security Options</a></li>
|
||
<li><a class="reference internal" href="#macos-options">3.3.13. macOS Options</a></li>
|
||
<li><a class="reference internal" href="#ios-options">3.3.14. iOS Options</a></li>
|
||
<li><a class="reference internal" href="#cross-compiling-options">3.3.15. Cross Compiling Options</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#python-build-system">3.4. Python Build System</a><ul>
|
||
<li><a class="reference internal" href="#main-files-of-the-build-system">3.4.1. Main files of the build system</a></li>
|
||
<li><a class="reference internal" href="#main-build-steps">3.4.2. Main build steps</a></li>
|
||
<li><a class="reference internal" href="#main-makefile-targets">3.4.3. Main Makefile targets</a><ul>
|
||
<li><a class="reference internal" href="#make">3.4.3.1. make</a></li>
|
||
<li><a class="reference internal" href="#make-platform">3.4.3.2. make platform</a></li>
|
||
<li><a class="reference internal" href="#make-profile-opt">3.4.3.3. make profile-opt</a></li>
|
||
<li><a class="reference internal" href="#make-clean">3.4.3.4. make clean</a></li>
|
||
<li><a class="reference internal" href="#make-distclean">3.4.3.5. make distclean</a></li>
|
||
<li><a class="reference internal" href="#make-install">3.4.3.6. make install</a></li>
|
||
<li><a class="reference internal" href="#make-test">3.4.3.7. make test</a></li>
|
||
<li><a class="reference internal" href="#make-ci">3.4.3.8. make ci</a></li>
|
||
<li><a class="reference internal" href="#make-buildbottest">3.4.3.9. make buildbottest</a></li>
|
||
<li><a class="reference internal" href="#make-regen-all">3.4.3.10. make regen-all</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#c-extensions">3.4.4. C extensions</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#compiler-and-linker-flags">3.5. Compiler and linker flags</a><ul>
|
||
<li><a class="reference internal" href="#preprocessor-flags">3.5.1. Preprocessor flags</a></li>
|
||
<li><a class="reference internal" href="#compiler-flags">3.5.2. Compiler flags</a></li>
|
||
<li><a class="reference internal" href="#linker-flags">3.5.3. Linker flags</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="unix.html"
|
||
title="previous chapter"><span class="section-number">2. </span>Using Python on Unix platforms</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="windows.html"
|
||
title="next chapter"><span class="section-number">4. </span>Using Python on Windows</a></p>
|
||
</div>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const title = document.querySelector('meta[property="og:title"]').content;
|
||
const elements = document.querySelectorAll('.improvepage');
|
||
const pageurl = window.location.href.split('?')[0];
|
||
elements.forEach(element => {
|
||
const url = new URL(element.href.split('?')[0].replace("-nojs", ""));
|
||
url.searchParams.set('pagetitle', title);
|
||
url.searchParams.set('pageurl', pageurl);
|
||
url.searchParams.set('pagesource', "using/configure.rst");
|
||
element.href = url.toString();
|
||
});
|
||
});
|
||
</script>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a bug</a></li>
|
||
<li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.15/Doc/using/configure.rst?plain=1"
|
||
rel="nofollow">Show source
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div id="sidebarbutton" title="Collapse sidebar">
|
||
<span>«</span>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="windows.html" title="4. Using Python on Windows"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="unix.html" title="2. Using Python on Unix platforms"
|
||
>previous</a> |</li>
|
||
|
||
<li class="root-icon"><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.15.0 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python Setup and Usage</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href=""><span class="section-number">3. </span>Configure Python</a></li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
|
||
<input type="submit" value="Go">
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
<li class="right">
|
||
<label class="theme-selector-label">
|
||
Theme
|
||
<select class="theme-selector" oninput="activateTheme(this.value)">
|
||
<option value="auto" selected>Auto</option>
|
||
<option value="light">Light</option>
|
||
<option value="dark">Dark</option>
|
||
</select>
|
||
</label> |</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
© <a href="../copyright.html">Copyright</a> 2001 Python Software Foundation.
|
||
<br>
|
||
This page is licensed under the Python Software Foundation License Version 2.
|
||
<br>
|
||
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
|
||
<br>
|
||
|
||
See <a href="/license.html">History and License</a> for more information.<br>
|
||
|
||
|
||
<br>
|
||
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br>
|
||
<br>
|
||
Last updated on Oct 09, 2026 (11:35 UTC).
|
||
|
||
<a href="/bugs.html">Found a bug</a>?
|
||
|
||
<br>
|
||
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |