# Python language support

> **Note:**
> Make sure that the [Python plugin](https://plugins.jetbrains.com/plugin/631-python)  is [installed and enabled](managing-plugins.html). The plugin implements all the features of [PyCharm](https://www.jetbrains.com.cn/en-us/pycharm/). For more information about the supported features, refer to the [PyCharm documentation](https://www.jetbrains.com.cn/en-us/help/pycharm/).

To develop Python scripts in IntelliJ IDEA:

* Download and install [Python](http://www.python.org/).

* Configure at least one [Python SDK](configuring-python-sdk.html) .

If you are a Windows user, we recommend that you install [Python for Windows](https://www.python.org/downloads/windows/).

## Supported versions

* Python 2: version 2.7

* Python 3: from the version 3.9 up to the version 3.15

> **Note:**
> All Python functionality in IntelliJ IDEA is fully supported on Python 3.9 or later. For older versions, some functionality might be limited depending on the support provided by individual tools.
>
>
>
> For instance, creating new environments requires Python 3.8 or newer. For new projects based on Python 3.7 and older, create a new environment in your terminal and then [select it in IntelliJ IDEA](configuring-python-sdk.html#existing-virtual-environment).

The following features are available as part of Python 3.15 support:

* [PEP 800 – Disjoint bases in the type system](https://peps.python.org/pep-0800/)

* [PEP 728 – TypedDict with Typed Extra Items](https://peps.python.org/pep-0728/)

* [PEP 747 – Annotating Type Forms](https://peps.python.org/pep-0747/)

* [PEP 810 – Explicit lazy imports](https://peps.python.org/pep-0810/)

The following features are available as part of Python 3.14 support:

* [PEP 750 – Template Strings](https://peps.python.org/pep-0750/)

* [PEP 765 – Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/)

* [PEP 649 – Deferred Evaluation Of Annotations Using Descriptors](https://peps.python.org/pep-0649/)

* [PEP 758 – Allow except and except* expressions without parentheses](https://peps.python.org/pep-0758/)

The following features are available as part of Python 3.13 support:

* [PEP 696 – Type Defaults for Type Parameters](https://peps.python.org/pep-0696/)

* [PEP 702 – Marking deprecations using the type system](https://peps.python.org/pep-0702/)

* [PEP 742 – Narrowing types with TypeIs](https://peps.python.org/pep-0742/)

* [PEP 705 – TypedDict: Read-only items](https://peps.python.org/pep-0705/)

The following features are available as part of Python 3.12 support:

* [PEP 695 – Type Parameter Syntax](https://peps.python.org/pep-0695/)

* [PEP 669 – Low Impact Monitoring for CPython](https://peps.python.org/pep-0669/)

* [PEP 701 – Syntactic formalization of f-strings](https://peps.python.org/pep-0701/)

* [PEP 698 – Override Decorator for Static Typing](https://peps.python.org/pep-0698/)

* [PEP 692 – Using TypedDict for more precise **kwargs typing](https://peps.python.org/pep-0692/)

The following features are available as part of Python 3.11 support:

* [PEP 673 – Self Type](https://peps.python.org/pep-0673/)

* [PEP 646 – Variadic Generics](https://peps.python.org/pep-0646/)

* [PEP 654 – Exception Groups and except*](https://peps.python.org/pep-0654/)

* [PEP 655 – Marking individual TypedDict items as required or potentially-missing](https://peps.python.org/pep-0655/)

* [PEP 681 – Data Class Transforms](https://peps.python.org/pep-0681/)

The following features are available as part of Python 3.10 support:

* [PEP 647 – User-Defined Type Guards](https://www.python.org/dev/peps/pep-0647/)

* [PEP 604 – Allow writing union types as X | Y](https://www.python.org/dev/peps/pep-0604/)

* [PEP 612 – Parameter Specification Variables](https://www.python.org/dev/peps/pep-0612/)

* [PEP 613 – Explicit Type Aliases](https://www.python.org/dev/peps/pep-0613/)

* [PEP 634 – Structural Pattern Matching: Specification](https://www.python.org/dev/peps/pep-0634/)

* [PEP 635 – Structural Pattern Matching: Motivation and Rationale](https://www.python.org/dev/peps/pep-0635/)

* [PEP 636 – Structural Pattern Matching: Tutorial](https://peps.python.org/pep-0636/)

The following features are available as part of Python 3.9 support:

* [PEP 585 – Type Hinting Generics In Standard Collections](https://www.python.org/dev/peps/pep-0585/)

* [PEP 593 – Flexible function and variable annotations](https://www.python.org/dev/peps/pep-0593/)

* [PEP 614 – Relaxing Grammar Restrictions On Decorators](https://www.python.org/dev/peps/pep-0614/)

* [PEP 617 – New PEG parser for CPython](https://www.python.org/dev/peps/pep-0617/)

## Python support in IntelliJ IDEA

IntelliJ IDEA provides the following features to help you work with Python:

* Dedicated module type.

* Ability to [configure](configuring-python-sdk.html) interpreters.

* [Python Console](https://www.jetbrains.com.cn/en-us/help/pycharm/using-consoles.html).

* Run/debug configurations for [Python](https://www.jetbrains.com.cn/en-us/help/pycharm/run-debug-configuration-python.html), and [Python remote debug](https://www.jetbrains.com.cn/en-us/help/pycharm/run-debug-configuration-python-remote-debug.html).

* [Code insight](https://www.jetbrains.com.cn/en-us/help/pycharm/python-code-insight.html).

* [Python tools support](https://www.jetbrains.com.cn/en-us/help/pycharm/lsp-tools.html).

* [Code inspections](https://www.jetbrains.com.cn/en-us/help/pycharm/code-inspection.html).

* [Intention actions](https://www.jetbrains.com.cn/en-us/help/pycharm/intention-actions.html) .

* [Code completion](https://www.jetbrains.com.cn/en-us/help/pycharm/auto-completing-code.html) and resolve.

* Built-in code formatter and separate set of Python [code style settings](code-style-python.html).

* [Find usages](https://www.jetbrains.com.cn/en-us/help/pycharm/finding-usages.html) in Python code.

* [Testing frameworks](https://www.jetbrains.com.cn/en-us/help/pycharm/testing-frameworks.html).

* [Quick documentation](https://www.jetbrains.com.cn/en-us/help/pycharm/viewing-reference-information.html#inline-quick-documentation) .

* Creating Python [documentation comments](https://www.jetbrains.com.cn/en-us/help/pycharm/creating-documentation-comments.html).

* Configuring [Python debugger](https://www.jetbrains.com.cn/en-us/help/pycharm/debugger-python.html) .

* [UML Class diagram for Python classes](https://www.jetbrains.com.cn/en-us/help/pycharm/class-diagram.html).

## See also

### Concepts

[Projects](creating-and-managing-projects.html)

