JetBrains logo

Check out the Python Developer Survey results from 2023, 2021, 2020, 2019, 2018, and 2017.

General Python Usage

Python as main vs secondary language

85%

Main

15%

Secondary

Python usage with other languages100+

37%

40%

JavaScript

36%

38%

HTML/CSS

34%

33%

SQL

31%

33%

Bash / Shell

29%

30%

C/C++

19%

20%

Java

11%

10%

TypeScript

11%

11%

C#

9%

9%

PHP

8%

9%

Go

7%

6%

Rust

6%

5%

R

4%

4%

Visual Basic

3%

3%

Kotlin

86% of Python developers use other languages in addition to Python, with JavaScript, HTML/CSS, and SQL being the most popular.

Python usage with other languages100+

37%

38%

JavaScript

37%

32%

HTML/CSS

35%

28%

SQL

32%

22%

Bash / Shell

27%

37%

C/C++

18%

28%

Java

10%

17%

TypeScript

10%

18%

C#

9%

14%

PHP

8%

11%

Go

6%

5%

R

6%

9%

Rust

4%

5%

Visual Basic

3%

6%

Kotlin

Languages for Web and Data Science100+

45%

50%

SQL

34%

66%

JavaScript

34%

41%

Bash / Shell

33%

60%

HTML/CSS

32%

19%

C/C++

Web development refers to people who selected “Web development” in response to the question “What do you use Python for the most?”. Data science refers to people who selected “Data analysis” or “Machine Learning” in the same question.

Unsurprisingly, JavaScript and HTML/CSS are the most popular languages among web developers, while SQL is the number one choice for data scientists.

Purposes for Using Python

In this section, we asked questions to find out what people use Python for, what types of development they are involved in, and how they combine their various uses.

For what purposes do you mainly use Python?

51%

Both for work and personal

28%

For personal, educational or side projects

21%

For work

1 in 5 respondents uses Python only for work-related projects, while just over half combine it with personal projects.

Python usage in 2021 and 2022100+

51%

51%

Data analysis

43%

45%

Web development

36%

36%

Machine learning

34%

36%

DevOps / System administration / Writing automation scripts

30%

31%

Programming of web parsers / scrapers / crawlers

Python usage as main and secondary language100+

53%

44%

Data analysis

45%

31%

Web development

37%

29%

Machine learning

35%

34%

DevOps / System administration / Writing automation scripts

30%

28%

Programming of web parsers / scrapers / crawlers

To what extent are you involved in the following activities?

Data analysis

Web development

Machine learning

DevOps / System administration / Writing automation scripts

Programming of web parsers / scrapers / crawlers

Educational purposes

Software testing / Writing automated tests

Software prototyping

Desktop development

Network programming

Computer graphics

Game development

Embedded development

Mobile development

Multimedia applications development

Other

What do you use Python for the most?

22%

23%

Web development

18%

17%

Data analysis

12%

11%

Machine learning

10%

10%

DevOps / System administration / Writing automation scripts

9%

9%

Educational purposes

Those who use Python as their main language mostly use it for web development (23%).

As a secondary language, Python is most often used for data analysis (16%) and DevOps (14%), while web development comes in third place (13%).

Do you consider yourself a Data Scientist?

This question was only answered by respondents who are involved in Data analysis and Machine learning.

About a third of pythonistas involved in data analysis and machine learning consider themselves data scientists.

Python Versions

Python 3 vs. Python 2

2022

2021

2020

2019

2018

2017

More than 90% of respondents have already implemented Python 3, so can be said to have

already achieved mainstream acceptance.

The number of Python 2 users has remained nearly the same for the last 3 years, below 7%. Nevertheless, some people still use version 2 for data analysis (29%), computer graphics (24%), and DevOps (23%).

Python version use cases100+

54%

29%

Data analysis

46%

19%

Web development

38%

13%

Machine learning

36%

23%

DevOps / System administration / Writing automation scripts

32%

13%

Programming of web parsers / scrapers / crawlers

Python 3 versions

45%

16%

Python 3.10

23%

35%

Python 3.9

17%

27%

Python 3.8

9%

13%

Python 3.7

4%

7%

Python 3.6

Please note that the survey took place October 14 – November 14, 2022, and Python 3.11 was only released on October 24, 2022.

11%

of pythonistas say they don’t update their Python versions, and 6% report that somebody else manages their updates.

52%

of respondents who use Windows install Python via python.org, while the most popular options for macOS and Linux users are the OS-provided Python, Python.org, Docker containers, and pyenv.

Python installation and upgrade100+

37%

Python.org

26%

OS-provided Python (via apt-get, yum, homebrew, etc.)

17%

Anaconda

17%

Docker containers

16%

pyenv

6%

Build from source

6%

Somebody else manages Python updates for me

5%

Automatic upgrade via cloud provider

2%

ActivePython

2%

Intel Distribution for Python

2%

pythonz

3%

Other

11%

I don’t update

Note: Enthought got less than 0.5% and has been merged to Others.

Python environment isolation100+

49%

Virtualenv

31%

Docker

22%

Conda

16%

Pipenv

14%

Poetry

6%

Vagrant / virtual machines

4%

Other

23%

None

Poetry is slowly becoming a more popular tool for Python environment isolation. Since 2020, it has added 6 percentage points. The tool looks promising given that some of its features are already implemented in core Python.

Frameworks and Libraries

Web frameworks100+

39%

Flask

39%

Django

25%

FastAPI

4%

web2py

4%

CherryPy

4%

Tornado

3%

Pyramid

3%

Bottle

2%

Falcon

2%

Hug

5%

Other

27%

None

Python web framework usage is still a 3 horse race between Flask, Django, and FastAPI.

All the other frameworks combined would barely reach third place. FastAPI has added 4 percentage points since last year and now is used by 1 in 4 Python developers.

You can find more about the Django landscape in the Django Developers Survey 2022, conducted in partnership with the Django Software Foundation.

Other frameworks and libraries100+

48%

Requests

29%

Pillow

25%

Asyncio

20%

Tkinter

15%

PyQT

15%

Scrapy

14%

aiohttp

13%

httpx

12%

Pygame

6%

Kivy

6%

Six

5%

wxPython

4%

Twisted

4%

PyGTK

6%

Other

19%

None

Though the top-3 frameworks have not changed compared to 2021, Requests has ceded 4 percentage points to httpx.

Unit-testing frameworks100+

51%

pytest

24%

unittest

10%

mock

6%

doctest

6%

tox

5%

Hypothesis

4%

nose

1%

Other

35%

None

In general, bigger companies are more likely to use unit testing in their Python projects, and also adopt pytest and mock more widely, than smaller ones.

ORMs100+

35%

SQLAlchemy

28%

Django ORM

16%

Raw SQL

8%

SQLObject

3%

Peewee

3%

Tortoise ORM

3%

PonyORM

2%

Dejavu

4%

Other

34%

No database development

Databases100+

42%

PostgreSQL

37%

MySQL

36%

SQLite

19%

MongoDB

16%

Redis

12%

MS SQL Server

7%

Oracle Database

4%

Amazon Redshift

3%

Neo4j

3%

Cassandra

2%

DB2

2%

h2

2%

HBase

2%

Couchbase

6%

Other

18%

None

MS SQL Server and Oracle Database are twice as popular among data scientists than among web developers, while the adoption of most of the other databases is much higher among web developers.

Big Data tools100+

12%

Apache Spark

10%

Apache Kafka

6%

Apache Hadoop/MapReduce

6%

Dask

5%

Apache Hive

3%

Apache Beam

3%

ClickHouse

3%

Apache Flink

2%

Apache Samza

2%

Apache Tez

1%

Other

69%

None

31% of Python developers use big data tools, marking a 6 percentage point increase since 2021. Among data scientists this number reaches 42%, who’d have thought?

Cloud platforms

66%

of Python developers use cloud platforms – 5 percentage points more than last year.

Top cloud platforms100+

49%

AWS

33%

Google Cloud Platform

25%

Microsoft Azure

20%

Heroku

16%

DigitalOcean

14%

PythonAnywhere

7%

Linode

6%

OpenStack

5%

OpenShift

2%

Rackspace

9%

Other

This question was only answered by respondents who use cloud platforms.

Among pythonistas in Africa, Heroku is the most popular cloud platform, as it is used by 39% of developers there. The other languages developers use also affects their choice of platform.

Unsurprisingly, C# users use Microsoft Azure nearly as often as AWS. Go and TypeScript developers are the most active cloud platform users, with more than 80% of them using clouds.

How do you run code in the cloud?100+

47%

48%

Within containers

41%

41%

In virtual machines

27%

27%

On a Platform-as-a-Service

27%

24%

Serverless

2%

2%

Other

This question was only answered by respondents who use cloud platforms.

How do you develop for the cloud?100+

53%

56%

Locally with virtualenv

41%

40%

In Docker containers

20%

21%

In virtual machines

19%

17%

In remote development environments

18%

18%

With local system interpreter

This question was only answered by respondents who use cloud platforms.

Local development with virtualenv continues to fall in popularity, losing 7 percentage points since 2020. It is most commonly used by respondents who do web development with Python.

The usage of remote development environments is rising slowly but surely, adding 3 percentage points since 2020. It is most commonly used for machine learning, network programming, and DevOps.

Development Tools

Operating system100+

59%

Linux

58%

Windows

26%

macOS

3%

BSD

1%

Other

Compared to last year, the popularity of macOS and Windows has remained nearly the same, while Linux usage has decreased by 4 percentage points.

Continuous integration (CI) systems100+

35%

GitHub Actions

22%

Gitlab CI

16%

Jenkins / Hudson

6%

Bitbucket Pipelines

6%

Travis CI

6%

CircleCI

3%

TeamCity

3%

Bamboo

2%

AppVeyor

2%

CruiseControl

4%

Other

35%

None

The popularity of GitHub Actions continues to grow, with more than a third of Python developers now using it.

The overall adoption of CI tools also rose by 4 percentage points compared to 2021.

34%

of respondents use continuous management tools, with Ansible being the most popular, while 11% prefer to use some custom solutions.

Documentation Tools100+

22%

Sphinx

11%

MKDocs

8%

Doxygen

5%

Other

61%

I don’t use any documentation tools

39% of pythonistas use a documentation tool, with the top choice, Sphinx, remaining unchanged from last year.

Tools and Features for Python Development

use autocompletion in your editor

use Python virtual environments for your projects

refactor your code

use Version Control Systems

use code linting

write tests for your code

use SQL databases

use a debugger

use optional type hinting

run / debug or edit code on remote machines

use Continuous Integration tools

use Issue Trackers

use code coverage

use a Python profiler

use NoSQL databases

Editors

Chosen by a combined two-thirds of the respondents, PyCharm and VS Code are the 2 top IDEs for Python development.

Only 14% of respondents use only one single IDE or editor, and the vast majority (61%) simultaneously use 2–3 IDEs or editors. 26% of Python developers prefer PyCharm as their additional IDE, and a quarter select VS Code.

Main IDE/Editor

37%

VS Code

29%

PyCharm

5%

Jupyter Notebook

3%

Vim

3%

Neovim

2%

Sublime Text

2%

IDLE

2%

Emacs

2%

IntelliJ IDEA

2%

Spyder

2%

NotePad++

2%

JupyterLab

1%

Atom

1%

Eclipse + Pydev

4%

Other

3%

None

To identify the most popular editors and IDEs, we asked a single-answer question “What is the main editor you use for your current Python development?”.

Data science vs. Web development

40%

44%

VS Code

25%

37%

PyCharm

3%

4%

Vim

2%

2%

Emacs

2%

3%

Sublime Text

Web development refers to people who selected “Web development” in response to the question “What do you use Python for the most?”. Data science refers to people who selected “Data analysis” or “Machine Learning” in the same question.

Number of IDEs/Editors used

14%

1

35%

2

26%

3

14%

4

11%

5+

IDEs/Editors used in addition to main IDE/Editor100+

25%

VS Code

23%

Jupyter Notebook

18%

Vim

17%

PyCharm Community Edition

14%

NotePad++

13%

JupyterLab

12%

Sublime Text

9%

PyCharm Professional Edition

8%

IDLE

8%

Nano

6%

Spyder

5%

Atom

5%

Python Tools for Visual Studio (PTVS)

5%

Neovim

4%

IntelliJ IDEA

3%

Emacs

2%

Eclipse + Pydev

1%

Wing IDE

4%

Other

14%

None

Python Packaging

85%

of Python developers use tools to isolate environments between projects, with the 3 top solutions being venv, virtualenv, and Conda.

Which of the following tools do you use to isolate Python environments between projects?100+

43%

venv

37%

virtualenv

21%

Conda

16%

Poetry

14%

pipenv

6%

virtualenvwrapper

3%

hatch

3%

Other

15%

I do not use any tools to isolate Python environments

Do you use a virtual environment in containers?

There’s been a 5 percentage point increase in the number of developers using virtual environments in containers since last year.

Which tools related to Python packaging
do you use directly?
100+

76%

81%

pip

29%

32%

venv (standard library)

26%

30%

Containers (eg: via Docker)

23%

22%

Conda

18%

23%

virtualenv

While the top 3 tools are still the same as a year ago, they are all slowly falling in popularity. Meanwhile, Poetry usage has increased by 2 percentage points.

Do you use the standard library module venv?100+

42%

I use venv directly

23%

I use it via virtualenv

13%

I use it via Poetry

12%

I use it via Pipenv

4%

I use it via tox

1%

Other

11%

I don’t know

18%

No, I do not use venv

The number of those using the standard library module venv has risen by 5 percentage points compared to 2021.

What format(s) is your application dependency information stored in?100+

69%

76%

requirements.txt

33%

26%

pyproject.toml

25%

22%

poetry.lock

15%

16%

pipfile.lock

11%

11%

Conda environment.yml

Application dependency information storage in requirements.txt is becoming less popular, falling 7 percentage points compared to last year.

In the same time, pyproject.toml has risen by the same amount and is now used by a third of Python developers.

A lot of steady work went into pyproject.toml reaching feature parity, and it is now supported directly in pip.

45%

of Python developers use tools for managing the versions of application dependencies. Poetry, pipenv, and pip-tools are the main tools used for this purpose, with nearly equal usage among developers.

30%

of Python developers still manually update the versions of application dependencies, marking a 5 percentage point drop from a year ago.

Which tools do you use for application dependency management?100+

30%

poetry

28%

pipenv

26%

pip-tools

4%

Other

28%

None

This question was only answered by respondents who use some tools for managing precise/exact versions of application dependencies.

Where do you install packages from? 100+

73%

PyPI

33%

GitHub

17%

Local source

16%

Anaconda

12%

From Linux distribution

11%

Private Python Package Index

11%

conda-forge Conda channel

10%

Internal mirror of PyPI

9%

Default Conda channel

9%

GitLab

4%

Artifactory

4%

Other Conda channel

1%

Other

10%

I’m not sure

PyPI usage has declined by 7 percentage points, while the usage of all other methods of package installation is nearly the same as in 2021.

Which tools do you use for installing packages?100+

84%

pip

22%

Conda

15%

Poetry

6%

easy_install

6%

pipx

3%

pip-sync

2%

Other

5%

None

57%

of pythonistas develop applications using Python, with Setuptools, Wheel, build, and Poetry being the most popular tools for this purpose.

Which tool(s) do you use to develop
Python applications?
100+

40%

Setuptools

29%

Wheel

21%

build

19%

Poetry

7%

conda-build

3%

Flit

3%

Enscons

3%

pex

2%

PDM-PEP517

2%

maturin

4%

Other

25%

None / I'm not sure

This question was only answered by respondents who develop applications.

While more than half of Python users develop applications, only 41% of them have already published these apps to a package repository.

Where did you publish your Python application packages?100+

61%

PyPI

38%

Private Python Package Index

14%

Internal mirror of PyPI

8%

conda-forge

6%

Other

This question was only answered by respondents who published their Python application packages.

34%

of respondents have already developed and packaged Python libraries. The most popular solutions for this purpose are generally the same as for Python application development.

74%

of the respondents who have developed their own Python libraries have already published them, primarily using PyPI or a private Python Package Index to do so.

Which tools do you use to create packages
of your Python libraries?
100+

This question was only answered by respondents who develop Python libraries.

59%

71%

Setuptools

39%

42%

Wheel

30%

26%

build

24%

20%

Poetry

8%

5%

conda-build

Where have you published your packaged Python libraries?100+

63%

PyPI

38%

Private Python Package Index

15%

Internal mirror of PyPI

9%

conda-forge

5%

Other

This question was only answered by respondents who published their packaged Python libraries.

Interestingly, PyPI usage declined by 9 percentage points compared to last year, while the popularity of internal mirrors of PyPI has risen by 5 percentage points.

Demographics

Working in a team vs working independently

49%

Work on own project(s) independently

46%

Work in a team

5%

Work as an external consultant or trainer

Working on projects

41%

Work on one main and several side projects

38%

Work on many different projects

21%

Only work on one project

Employment status

59%

Fully employed by a company / organization

13%

Student

7%

Freelancer

7%

Self-employed

7%

Working student

5%

Partially employed by a company / organization

1%

Retired

2%

Other

Company size

8%

Just me

11%

2–10

17%

11–50

26%

51–500

8%

501–1,000

10%

1,001–5,000

18%

5,000+

3%

Not sure

This question was only answered by respondents who are employed in companies.

Team size

67%

2-7

19%

8-12

7%

13-20

4%

21-40

3%

40+

This question was only answered by respondents who are employed in companies.

Company industry

38%

Information Technology / Software Development

7%

Education / Training

7%

Science

6%

Accounting / Finance / Insurance

4%

Medicine / Health

4%

Manufacturing

4%

Banking / Real Estate / Mortgage Financing

This question was only answered by respondents who are employed in companies.

Target industry

50%

Information Technology / Software Development

5%

Accounting/Finance/Insurance

3%

Manufacturing

3%

Sales / Distribution / Business Development

3%

Logistics/Transportation

3%

Banking / Real Estate / Mortgage Financing

3%

Medicine/Health

This question was only answered by respondents who are employed in companies.

Job roles100+

65%

Developer / Programmer

19%

Data analyst

17%

Team lead

15%

Architect

10%

Technical support

7%

Systems analyst

6%

Product manager

6%

CIO / CEO / CTO

6%

QA engineer

5%

DBA

5%

Business analyst

4%

Technical writer

13%

Other

This question was only answered by respondents who are employed.

Age range

9%

18–20

37%

21–29

31%

30–39

13%

40–49

6%

50–59

3%

60+

Python experience

23%

Less than 1 year

20%

1–2 years

29%

3–5 years

18%

6–10 years

10%

11+ years

Professional coding experience

33%

Less than 1 year

19%

1–2 years

19%

3–5 years

12%

6–10 years

16%

11+ years

What is your country or region?

All countries/regions smaller than 1% have been merged into “Other”.

19%

United States

11%

India

6%

Germany

4%

Mainland China

4%

United Kingdom

4%

Brazil

4%

France

3%

Russian Federation

2%

Canada

2%

Poland

2%

Italy

2%

Turkey

Methodology and Raw Data

Want to dig further into the data? Download the anonymized survey responses and see what you can learn! Share your findings and insights by mentioning @jetbrains and @ThePSF on Twitter with the hashtag #pythondevsurvey.

Before you begin to dissecting this data, please note the following important points:

This data set includes responses only from official Python Software Foundation channels. After filtering out duplicate and unreliable responses, the data set includes more than 23,000 responses collected in October–December 2022, with the survey being promoted on python.org and the PSF blog, official Python mailing lists, and Python-related subreddits, as well as by the PSF’s Twitter and LinkedIn accounts. In order to prevent the survey from being slanted in favor of any specific tool or technology, no product, service, or vendor-related channels were used to collect responses.

The data has been anonymized, with no personal information or geolocation details. To prevent the identification of any individual respondents by their comments, all open-ended fields have been deleted.

To help you better understand the logic of the survey, we are sharing the data set, the survey questions, and the survey logic. We used different ordering methods for answer options (alphabetical, randomized, and direct). The order of the answers is specified for each question.

Criteria for filtering out responses

Any of the following:

  • Age 17 or younger.
  • Did not answer the question “How many years of professional coding experience do you have?” on the third page of the survey.
  • Age under 21 and more than 11 years of professional coding experience.
  • Too many single answers for multiple choice questions (excluding “None” answers).
  • Multiple responses from the same email address (only one response is used).
  • Doesn’t use Python.

At least two of the following:

    • More than 16 programming languages used.
  • More than 9 job roles.
  • More than 11 choices selected in response to ​​“What do you use Python for?”.
  • Selected country/region is among the top of the list alphabetically and not among popular countries/regions.
  • Both the CEO and Technical Support job roles.
  • Both CEO and aged under 21.
  • Too many answers selected overall (using almost all frameworks for data science, for web development, packaging, etc.).
  • Answered too quickly (less than 5 seconds per question).

Once again, on behalf of both the Python Software Foundation and JetBrains, we’d like to thank everyone who took part in this survey. With your help, we’re able to map the landscape of the Python community more accurately!

Contribute to the PSF’s Recurring Giving Campaign. The PSF is a non-profit organization entirely supported by its sponsors, members & the public.

Check out the Python Developer Survey results in 2021, 2020, 2019, 2018, and 2017.

Discover the other large-scale survey reports by JetBrains!

Thank you for your time!

Gravity

We hope you found our report useful. Share this report with your friends and colleagues!

Join the JetBrains Tech Insights Lab

Take part in surveys and UX studies to make JetBrains products easier to use yet even more powerful. For participating in our research, you'll also get the chance to earn rewards.