• Stars
    star
    55,867
  • Rank 172 (Top 0.01 %)
  • Language
    Python
  • License
    Other
  • Created about 7 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Python programming language

This is Python version 3.13.0 alpha 6

CPython build status on GitHub Actions

CPython build status on Azure DevOps

Python Discourse chat

Copyright Β© 2001-2024 Python Software Foundation. All rights reserved.

See the end of this file for further copyright and license information.

General Information

Contributing to CPython

For more complete instructions on contributing to CPython development, see the Developer Guide.

Using Python

Installable Python kits, and information about using Python, are available at python.org.

Build Instructions

On Unix, Linux, BSD, macOS, and Cygwin:

./configure
make
make test
sudo make install

This will install Python as python3.

You can pass many options to the configure script; run ./configure --help to find out more. On macOS case-insensitive file systems and on Cygwin, the executable is called python.exe; elsewhere it's just python.

Building a complete Python installation requires the use of various additional third-party libraries, depending on your build platform and configure options. Not all standard library modules are buildable or useable on all platforms. Refer to the Install dependencies section of the Developer Guide for current detailed information on dependencies for various Linux distributions and macOS.

On macOS, there are additional configure and build options related to macOS framework and universal builds. Refer to Mac/README.rst.

On Windows, see PCbuild/readme.txt.

To build Windows installer, see Tools/msi/README.txt.

If you wish, you can create a subdirectory and invoke configure from there. For example:

mkdir debug
cd debug
../configure --with-pydebug
make
make test

(This will fail if you also built at the top-level directory. You should do a make clean at the top-level first.)

To get an optimized build of Python, configure --enable-optimizations before you run make. This sets the default make targets up to enable Profile Guided Optimization (PGO) and may be used to auto-enable Link Time Optimization (LTO) on some platforms. For more details, see the sections below.

Profile Guided Optimization

PGO takes advantage of recent versions of the GCC or Clang compilers. If used, either via configure --enable-optimizations or by manually running make profile-opt regardless of configure flags, the optimized build process will perform the following steps:

The entire Python directory is cleaned of temporary files that may have resulted from a previous compilation.

An instrumented version of the interpreter is built, using suitable compiler flags for each flavor. Note that this is just an intermediary step. The binary resulting from this step is not good for real-life workloads as it has profiling instructions embedded inside.

After the instrumented interpreter is built, the Makefile will run a training workload. This is necessary in order to profile the interpreter's execution. Note also that any output, both stdout and stderr, that may appear at this step is suppressed.

The final step is to build the actual interpreter, using the information collected from the instrumented one. The end result will be a Python binary that is optimized; suitable for distribution or production installation.

Enabled via configure's --with-lto flag. LTO takes advantage of the ability of recent compiler toolchains to optimize across the otherwise arbitrary .o file boundary when building final executables or shared libraries for additional performance gains.

What's New

We have a comprehensive overview of the changes in the What's New in Python 3.13 document. For a more detailed change log, read Misc/NEWS, but a full accounting of changes can only be gleaned from the commit history.

If you want to install multiple versions of Python, see the section below entitled "Installing multiple versions".

Documentation

Documentation for Python 3.13 is online, updated daily.

It can also be downloaded in many formats for faster access. The documentation is downloadable in HTML, PDF, and reStructuredText formats; the latter version is primarily for documentation authors, translators, and people with special formatting requirements.

For information about building Python's documentation, refer to Doc/README.rst.

Testing

To test the interpreter, type make test in the top-level directory. The test set produces some output. You can generally ignore the messages about skipped tests due to optional features which can't be imported. If a message is printed about a failed test or a traceback or core dump is produced, something is wrong.

By default, tests are prevented from overusing resources like disk space and memory. To enable these tests, run make buildbottest.

If any tests fail, you can re-run the failing test(s) in verbose mode. For example, if test_os and test_gdb failed, you can run:

make test TESTOPTS="-v test_os test_gdb"

If the failure persists and appears to be a problem with Python rather than your environment, you can file a bug report and include relevant output from that command to show the issue.

See Running & Writing Tests for more on running tests.

Installing multiple versions

On Unix and Mac systems if you intend to install multiple versions of Python using the same installation prefix (--prefix argument to the configure script) you must take care that your primary python executable is not overwritten by the installation of a different version. All files and directories installed using make altinstall contain the major and minor version and can thus live side-by-side. make install also creates ${prefix}/bin/python3 which refers to ${prefix}/bin/python3.X. If you intend to install multiple versions using the same prefix you must decide which version (if any) is your "primary" version. Install that version using make install. Install all other versions using make altinstall.

For example, if you want to install Python 2.7, 3.6, and 3.13 with 3.13 being the primary version, you would execute make install in your 3.13 build directory and make altinstall in the others.

Release Schedule

See 719 for Python 3.13 release details.

Copyright Β© 2001-2024 Python Software Foundation. All rights reserved.

Copyright Β© 2000 BeOpen.com. All rights reserved.

Copyright Β© 1995-2001 Corporation for National Research Initiatives. All rights reserved.

Copyright Β© 1991-1995 Stichting Mathematisch Centrum. All rights reserved.

See the LICENSE for information on the history of this software, terms & conditions for usage, and a DISCLAIMER OF ALL WARRANTIES.

This Python distribution contains no GNU General Public License (GPL) code, so it may be used in proprietary projects. There are interfaces to some GNU code but these are entirely optional.

All trademarks referenced herein are property of their respective holders.

More Repositories

1

mypy

Optional static typing for Python
Python
17,549
star
2

peps

Python Enhancement Proposals
reStructuredText
4,094
star
3

typeshed

Collection of library stubs for Python, with static types
Python
4,050
star
4

devguide

The Python developer's guide
Python
1,746
star
5

typing

Python static typing home. Hosts the documentation and a user help forum.
Python
1,545
star
6

pythondotorg

Source code for python.org
Python
1,414
star
7

asyncio

asyncio historical repository
1,015
star
8

pyperformance

Python Performance Benchmark Suite
Python
806
star
9

python-docs-zh-cn

zh_CN translation of the Python documentation
415
star
10

typing_extensions

Backported and experimental type hints for Python
Python
361
star
11

python-docs-fr

Mirroir en lecture seule de https://git.afpy.org/AFPy/python-docs-fr
356
star
12

python-docs-es

Spanish translation of the Python documentation.
Python
314
star
13

python-docs-zh-tw

Traditional Chinese (zh-tw) translation of the Python Documentation
Python
236
star
14

typed_ast

Modified fork of CPython's ast module that parses `# type:` comments
C
226
star
15

raspberryio

Source code for raspberry.io
Python
222
star
16

steering-council

Communications from the Steering Council
Makefile
138
star
17

planet

Configuration for Python planets (e.g. http://planetpython.org)
Python
133
star
18

mypy_extensions

Extensions for mypy
Python
126
star
19

python-docs-pt-br

Brazilian Portuguese translation of the Python Documentation
Makefile
113
star
20

bedevere

A bot to help identify missing information for CPython pull requests
Python
113
star
21

python-docs-tr

Turkish Translation of the Python Documentation
Python
105
star
22

miss-islington

πŸπŸ’β›πŸ€– - A bot for backporting and merging CPython pull requests
Python
104
star
23

psf-salt

PSF infrastructure configuration
SaltStack
104
star
24

importlib_metadata

Backport of the importlib.metadata module
Python
100
star
25

pycon-code-of-conduct

pycon code of conduct
97
star
26

core-workflow

Issue tracker for CPython's workflow
Python
87
star
27

the-knights-who-say-ni

CLA enforcement bot for Python organization projects
Python
81
star
28

python-docs-theme

Sphinx theme for Python documentation
CSS
68
star
29

python-docs-ko

Korean translation of the Python documentation
63
star
30

tzdata

Python package wrapping the IANA time zone database
Python
61
star
31

python-docs-ja

Shell
61
star
32

docsbuild-scripts

scripts for building documentation on docs.python.org
Python
61
star
33

python-docs-id

Terjemahan Bahasa Indonesia untuk Dokumentasi Python
58
star
34

pythoncapi-compat

The pythoncapi-compat project can be used to write a C extension supporting a wide range of Python versions with a single code base.
Python
53
star
35

importlib_resources

Backport of the importlib.resources module
Python
52
star
36

community-starter-kit

Collection of resources for Python community organizers
Python
46
star
37

getpython3.com

getpython3.com page and resources.
CSS
44
star
38

psf-chef

Chef configuration and cookbooks for the Python Software Foundation
Ruby
44
star
39

cherry-picker

πŸπŸ’β› Utility script for backporting/cherry-picking CPython changes from master into one of the maintenance branches.
Python
44
star
40

python-docs-pl

Polskie tΕ‚umaczenie dokumentacji Pythona
Python
41
star
41

docs-community

Community management for documentation contributors and the Docs Workgroup
36
star
42

typing-council

Decisions by the Python Typing Council
35
star
43

release-tools

Scripts for making (C)Python releases
Python
28
star
44

pythonineducation.org

The pythonineducation.org website
HTML
28
star
45

buildmaster-config

Configuration for buildbot.python.org
Python
27
star
46

blurb_it

`blurb add` over the internet
Python
25
star
47

cpython-source-deps

Source for packages that the cpython build process depends on
22
star
48

python-docs-uk

Ukrainian translation of the Python Documentation
Makefile
21
star
49

cpython-bin-deps

Binaries that the cpython build process depends on
21
star
50

exceptiongroups

An early draft of a PEP around Exception Groups in Python
21
star
51

psf-docs

PSF Docs
Python
18
star
52

historic-python-materials

Contains some old pages from python.org
Python
18
star
53

discord-bot

Discord Bot for Core Devs Discord server
Python
17
star
54

consul-operator

A kubernetes operator for consul
Go
17
star
55

core-sprint

Repo for Virtual Core Dev Sprint 2020
Python
16
star
56

speed.python.org

HTML
14
star
57

devinabox

Documentation and tools to help host a sprint on Python core development
Python
14
star
58

docker-bpo

Docker image for bugs.python.org
Python
14
star
59

pythontestdotnet

source of pythontest.net (resources used for Python test suite)
HTML
12
star
60

psf-community-resources

Short guides to PSF-related resources
11
star
61

bugs.python.org

Meta-issue tracker for bugs.python.org
11
star
62

.github

Organization-wide GitHub settings
10
star
63

hugs.python.org

9
star
64

psf-infra-meta

Meta-repository for PSF backed or managed systems. Created mainly for the issue tracker :)
8
star
65

python-docs-it

Italian translation of the Python documentation.
Makefile
8
star
66

python-dev-survey

Place for gathering feedback from the public on the Python Developers Survey
8
star
67

bpo-builder

bugs.python.org builder image & other deployment artifacts
Python
7
star
68

psf-election

Tools and documentation around running a PSF election
Python
7
star
69

psfoutreach

PSF Outreach website
Shell
6
star
70

language-summit

Resources for the annual Python Language Summit
6
star
71

python-docs-hu

Hungarian Translation of the Python Documentation
6
star
72

tlsproxy

Python
6
star
73

psf-packages

HTML
5
star
74

redistributor-guide

Guidance & recommendations for anyone publishing their own binary builds of CPython
4
star
75

overload-sig

Discussion about discussion overload, see https://mail.python.org/mm3/mailman3/lists/[email protected]/
4
star
76

issues-test-cpython

Test repository for the bpo migration
3
star
77

python-docs-bn-in

3
star
78

pootle-python-org-backup

Python
2
star
79

issues-test-demo-20220218

Test repository for the bpo migration
1
star
80

issues-test-demo-20220402

Test repository for the bpo migration
1
star