JetBrains logo

查看 202320212020201920182017 年的 Python 开发者调查结果。

一般 Python 使用情况

Python 作为主要语言与作为辅助语言

85%

主要

15%

辅助

Python 与其他语言的使用100 多个

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% 的 Python 开发者在 Python 之外还使用其他语言,其中 JavaScript、HTML/CSS 和 SQL 最受欢迎。

Python 与其他语言的使用100 多个

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

适用于 Web 和数据科学的语言100 多个

45%

50%

SQL

34%

66%

JavaScript

34%

41%

Bash/Shell

33%

60%

HTML/CSS

32%

19%

C/C++

Web 开发是指回答“您最常使用 Python 做什么?”这一问题时选择“Web 开发”的人群。数据科学是指同一问题下选择“数据分析”或“机器学习”的人群。

不出所料,JavaScript 和 HTML/CSS 是最受 Web 开发者欢迎的语言,而 SQL 是数据科学家的首选。

使用 Python 的目的

我们在这一部分提出了一些问题,试图了解人们使用 Python 的目的、参与的开发类型,及其结合多种用途的方式。

您主要出于什么目的使用 Python?

51%

用于工作和个人

28%

用于个人、教育或编外项目

21%

用于工作

五分之一的受访者仅将 Python 用于工作相关项目,超过一半的受访者将其与个人项目结合使用。

2021 年和 2022 年 Python 的使用100 多个

51%

51%

数据分析

43%

45%

Web 开发

36%

36%

机器学习

34%

36%

DevOps/系统管理/编写自动化脚本

30%

31%

Web 解析器/采集器/抓取工具编程

Python 作为主要语言与作为辅助语言的使用100 多个

53%

44%

数据分析

45%

31%

Web 开发

37%

29%

机器学习

35%

34%

DevOps/系统管理/编写自动化脚本

30%

28%

Web 解析器/采集器/抓取工具编程

您参与以下活动的程度如何?

数据分析

Web 开发

机器学习

DevOps/系统管理/编写自动化脚本

Web 解析器/采集器/抓取工具编程

教育目的

软件测试/编写自动化测试

软件原型设计

桌面开发

网络编程

计算机图形

游戏开发

嵌入式开发

移动开发

多媒体应用程序开发

其他

您最常使用 Python 做什么?

22%

23%

Web 开发

18%

17%

数据分析

12%

11%

机器学习

10%

10%

DevOps/系统管理/编写自动化脚本

9%

9%

教育目的

使用 Python 作为主要语言的受访者大多将其用于 Web 开发 (23%)。

作为辅助语言,Python 最常用于数据分析 (16%) 和 DevOps (14%),Web 开发排在第三位 (13%)。

您是否认为自己是数据科学家?

只有参与数据分析和机器学习的受访者回答了这个问题。

在参与数据分析和机器学习的 Python 使用者中,约三分之一认为自己是数据科学家。

Python 版本

Python 3 与 Python 2

2022 年

2021 年

2020 年

2019 年

2018 年

2017 年

超过 90% 的受访者已经实现 Python 3,

可以说已经获得了主流认可。

Python 2 的用户数量在过去 3 年几乎保持不变,低于 7%。尽管如此,仍有一些人将版本 2 用于数据分析 (29%)、计算机图形 (24%) 和 DevOps (23%)。

Python 版本用例100 多个

54%

29%

数据分析

46%

19%

Web 开发

38%

13%

机器学习

36%

23%

DevOps/系统管理/编写自动化脚本

32%

13%

Web 解析器/采集器/抓取工具编程

Python 3 版本

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

请注意,该调查于 2022 年 10 月 14 日至 11 月 14 日进行,Python 3.11 在 2022 年 10 月 24 日才发布。

11%

的 Python 使用者表示不更新 Python 版本,6% 表示由其他人管理更新。

52%

使用 Windows 的受访者通过 python.org 安装 Python,而最受 macOS 和 Linux 用户欢迎的选项是操作系统提供的 Python、Python.org、Docker 容器和 pyenv。

Python 安装和升级100 多个

37%

Python.org

26%

操作系统提供的 Python(通过 apt-get、yum、homebrew 等)

17%

Anaconda

17%

Docker 容器

16%

pyenv

6%

从源代码构建

6%

其他人为我管理 Python 更新

5%

通过云提供商自动升级

2%

ActivePython

2%

Intel Distribution for Python

2%

pythonz

3%

其他

11%

我不更新

注意:Enthought 的份额不到 0.5%,已被合并到“其他”中。

Python 环境隔离100 多个

49%

Virtualenv

31%

Docker

22%

Conda

16%

Pipenv

14%

Poetry

6%

Vagrant/虚拟机

4%

其他

23%

Poetry 正慢慢成为更流行的 Python 环境隔离工具。2020 年以来,它增加了 6 个百分点。工具看起来很有前途,它的一些特性已经在核心 Python 中实现。

框架和库

Web 框架100 多个

39%

Flask

39%

Django

25%

FastAPI

4%

web2py

4%

CherryPy

4%

Tornado

3%

Pyramid

3%

Bottle

2%

Falcon

2%

Hug

5%

其他

27%

Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。

所有其他框架加起来只能勉强排在第三位。去年以来,FastAPI 增加了 4 个百分点,现在有四分之一的 Python 开发者使用它。

您可以在 2022 Django 开发者调查中找到关于 Django 概况的更多信息,该调查是与 Django Software Foundation 合作开展的。

其他框架和库100 多个

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%

其他

19%

尽管排名前 3 的框架与 2021 年相比没有变化,但 Requests 已经向 httpx 让出了 4 个百分点。

单元测试框架100 多个

51%

pytest

24%

unittest

10%

mock

6%

doctest

6%

tox

5%

Hypothesis

4%

nose

1%

其他

35%

一般来说,大公司更有可能在 Python 项目中使用单元测试,并且比小公司更广泛地采用 pytest 和 mock。

ORM100 多个

35%

SQLAlchemy

28%

Django ORM

16%

Raw SQL

8%

SQLObject

3%

Peewee

3%

Tortoise ORM

3%

PonyORM

2%

Dejavu

4%

其他

34%

无数据库开发

数据库100 多个

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%

其他

18%

MS SQL Server 和 Oracle Database 在数据科学家中的受欢迎程度是 Web 开发者的两倍,而大多数其他数据库在 Web 开发者中的采用率要高得多。

大数据工具100 多个

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%

其他

69%

31% 的 Python 开发者使用大数据工具,自 2021 年以来增长了 6 个百分点。在数据科学家中,这个数字达到 42%,谁能想到呢?

云平台

66%

的 Python 开发者使用云平台 – 比去年增加了 5 个百分点。

最热门云平台100 多个

49%

AWS

33%

Google Cloud Platform

25%

Microsoft Azure

20%

Heroku

16%

DigitalOcean

14%

PythonAnywhere

7%

Linode

6%

OpenStack

5%

OpenShift

2%

Rackspace

9%

其他

只有使用云平台的受访者回答了这个问题。

在非洲的 Python 使用者中,Heroku 是最受欢迎的云平台,有 39% 的开发者使用。开发者使用的其他语言也会影响他们对平台的选择。

不出所料,C# 用户使用 Microsoft Azure 的频率几乎与 AWS 一样高。Go 和 TypeScript 开发者是最活跃的云平台用户,超过 80% 使用云。

您如何在云中运行代码?100 多个

47%

48%

在容器内

41%

41%

在虚拟机中

27%

27%

在平台即服务上

27%

24%

无服务器

2%

2%

其他

只有使用云平台的受访者回答了这个问题。

您如何进行云开发?100 多个

53%

56%

使用 virtualenv

41%

40%

在 Docker 容器中

20%

21%

在虚拟机中

19%

17%

在远程开发环境中

18%

18%

使用本地系统解释器

只有使用云平台的受访者回答了这个问题。

使用 virtualenv 进行本地开发的受欢迎程度持续下降,自 2020 年以来下降了 7 个百分点。使用 Python 进行 Web 开发的受访者最常使用它。

远程开发环境的使用率正在缓慢稳步上升,自 2020 年以来增加了 3 个百分点。它最常用于机器学习、网络编程和 DevOps。

开发工具

操作系统100 多个

59%

Linux

58%

Windows

26%

macOS

3%

BSD

1%

其他

与去年相比,macOS 和 Windows 的受欢迎程度几乎保持不变,而 Linux 的使用率下降了 4 个百分点。

持续集成 (CI) 系统100 多个

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%

其他

35%

GitHub Actions 的人气持续走高,现在有超过三分之一的 Python 开发者使用它。

与 2021 年相比,CI 工具的总体采用率也上升了 4 个百分点。

34%

的受访者使用持续管理工具,其中 Ansible 最受欢迎,11% 的受访者更喜欢使用自定义解决方案。

文档工具100 多个

22%

Sphinx

11%

MKDocs

8%

Doxygen

5%

其他

61%

我不使用任何文档工具

39% 的 Python 使用者使用文档工具,首选 Sphinx,与去年持平。

适用于 Python 开发的工具和功能

在编辑器中使用自动补全

为项目使用 Python 虚拟环境

重构代码

使用版本控制系统

使用代码 lint 分析

为代码编写测试

使用 SQL 数据库

使用调试器

使用可选的类型提示

在远程机器上运行/调试或编辑代码

使用持续集成工具

使用问题跟踪器

使用代码覆盖率

使用 Python 分析器

使用 NoSQL 数据库

编辑器

PyCharm 和 VS Code 是 Python 开发的前两大 IDE,有三分之二的受访者选择。

只有 14% 的受访者只使用一款 IDE 或编辑器,绝大多数 (61%) 同时使用 2-3 款 IDE 或编辑器。26% 的 Python 开发者更喜欢 PyCharm 作为额外 IDE,四分之一选择 VS Code。

主要 IDE/编辑器

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%

其他

3%

为了确定最受欢迎的编辑器和 IDE,我们提出了一个单选问题“您为当前的 Python 开发使用的主要编辑器是什么?”。

数据科学与 Web 开发

40%

44%

VS Code

25%

37%

PyCharm

3%

4%

Vim

2%

2%

Emacs

2%

3%

Sublime Text

Web 开发是指回答“您最常使用 Python 做什么?”这一问题时选择“Web 开发”的人群。数据科学是指同一问题下选择“数据分析”或“机器学习”的人群。

使用的 IDE/编辑器数量

14%

1

35%

2

26%

3

14%

4

11%

5+

除主要 IDE/编辑器外使用的 IDE/编辑器100 多个

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%

其他

14%

Python 打包

85%

的 Python 开发者使用工具隔离项目之间的环境,前 3 位解决方案是 venv、virtualenv 和 Conda。

您使用以下哪种(哪些)工具隔离项目之间的 Python 环境?100 多个

43%

venv

37%

virtualenv

21%

Conda

16%

Poetry

14%

pipenv

6%

virtualenvwrapper

3%

hatch

3%

其他

15%

我不使用任何工具隔离 Python 环境

您是否在容器中使用虚拟环境?

自去年以来,在容器中使用虚拟环境的开发者数量增加了 5 个百分点。

您直接使用哪种(哪些)与 Python 打包
相关的工具?
100 多个

76%

81%

pip

29%

32%

venv(标准库)

26%

30%

容器(例如通过 Docker)

23%

22%

Conda

18%

23%

virtualenv

虽然前 3 名的工具与一年前相同,但它们的受欢迎程度都在慢慢下降。与此同时,Poetry 的使用率增加了 2 个百分点。

您是否使用标准库模块 venv?100 多个

42%

我直接使用 venv

23%

我通过 virtualenv 使用

13%

我通过 Poetry 使用

12%

我通过 Pipenv 使用

4%

我通过 tox 使用

1%

其他

11%

不知道

18%

否,我不使用 venv

与 2021 年相比,使用标准库模块 venv 的人数增加了 5 个百分点。

您的应用程序依赖项信息以什么格式存储?100 多个

69%

76%

requirements.txt

33%

26%

pyproject.toml

25%

22%

poetry.lock

15%

16%

pipfile.lock

11%

11%

Conda environment.yml

使用 requirements.txt 存储应用程序依赖项信息的人气有所下滑,比去年减少了 7 个百分点。

同时,pyproject.toml 表现出同样幅度的增长,现在有三分之一的 Python 开发者使用。

pyproject.toml 经过大量稳定工作达到了功能对等,现在 pip 直接支持

45%

的 Python 开发者使用工具来管理应用程序依赖项的版本。Poetry、pipenv 和 pip-tools 是用于此目的的主要工具,在开发者中的使用率几乎相等。

30%

的 Python 开发者仍然手动更新应用程序依赖项的版本,比一年前下降了 5 个百分点。

您使用哪种(哪些)工具管理应用程序依赖项?100 多个

30%

poetry

28%

pipenv

26%

pip-tools

4%

其他

28%

只有使用某些工具来管理应用程序依赖项的精确/确切版本的受访者回答了这个问题。

您从哪里安装软件包?100 多个

73%

PyPI

33%

GitHub

17%

本地源

16%

Anaconda

12%

从 Linux 发行版

11%

私有 Python Package Index

11%

conda-forge Conda 渠道

10%

PyPI 的内部镜像

9%

默认 Conda 渠道

9%

GitLab

4%

Artifactory

4%

其他 Conda 渠道

1%

其他

10%

我不确定

PyPI 的使用率下降了 7 个百分点,其他软件包安装方法的使用率与 2021 年几乎持平。

您使用哪种(哪些)工具安装软件包?100 多个

84%

pip

22%

Conda

15%

Poetry

6%

easy_install

6%

pipx

3%

pip-sync

2%

其他

5%

57%

的 Python 使用者使用 Python 开发应用程序,其中 Setuptools、Wheel、build 和 Poetry 是最流行的工具。

您使用哪种(哪些)工具开发
Python 应用程序?
100 多个

40%

Setuptools

29%

Wheel

21%

build

19%

Poetry

7%

conda-build

3%

Flit

3%

Enscons

3%

pex

2%

PDM-PEP517

2%

maturin

4%

其他

25%

无/不确定

只有开发应用程序的受访者回答了这个问题。

虽然有超过一半的 Python 用户开发应用程序,但其中只有 41% 的人已经将这些应用发布到软件包仓库。

您在哪里发布 Python 应用程序软件包?100 多个

61%

PyPI

38%

私有 Python Package Index

14%

PyPI 的内部镜像

8%

conda-forge

6%

其他

只有发布了 Python 应用程序软件包的受访者回答了这个问题。

34%

的受访者已经开发并打包了 Python 库。用于此目的的最流行解决方案通常与 Python 应用程序开发相同。

74%

开发了自己的 Python 库的受访者已经将其发布,主要使用 PyPI 或私有 Python Package Index。

您使用哪种(哪些)工具创建
Python 库的软件包?
100 多个

只有开发 Python 库的受访者回答了这个问题。

59%

71%

Setuptools

39%

42%

Wheel

30%

26%

build

24%

20%

Poetry

8%

5%

conda-build

您曾在哪里发布打包的 Python 库?100 多个

63%

PyPI

38%

私有 Python Package Index

15%

PyPI 的内部镜像

9%

conda-forge

5%

其他

只有发布了打包 Python 库的受访者回答了这个问题。

有趣的是,与去年相比,PyPI 的使用率下降了 9 个百分点,而 PyPI 内部镜像的人气上升了 5 个百分点。

统计数据

团队工作与独立工作

49%

独立完成自己的项目

46%

在团队中工作

5%

担任外部顾问或培训师

参与项目

41%

参与一个主项目和几个编外项目

38%

参与许多不同的项目

21%

只参与一个项目

就业状况

59%

公司/组织全职员工

13%

学生

7%

自由职业者

7%

个体户

7%

在职学生

5%

公司/组织兼职员工

1%

退休

2%

其他

公司规模

8%

只有我

11%

2-10 人

17%

11-50 人

26%

51-500 人

8%

501–1,000 人

10%

1,001–5,000 人

18%

5,000 人以上

3%

不确定

只有在公司工作的受访者回答了这个问题。

团队规模

67%

2-7 人

19%

8-12 人

7%

13-20 人

4%

21-40 人

3%

40+

只有在公司工作的受访者回答了这个问题。

公司行业

38%

信息技术/软件开发

7%

教育/培训

7%

科学

6%

会计/金融/保险

4%

医疗/卫生

4%

制造业

4%

银行业/房地产/抵押融资

只有在公司工作的受访者回答了这个问题。

目标行业

50%

信息技术/软件开发

5%

会计/金融/保险

3%

制造业

3%

销售/分销/业务开发

3%

物流/运输

3%

银行业/房地产/抵押融资

3%

医药/健康

只有在公司工作的受访者回答了这个问题。

工作角色100 多个

65%

开发者/程序员

19%

数据分析师

17%

团队负责人

15%

架构师

10%

技术支持

7%

系统分析师

6%

产品经理

6%

首席信息官/首席执行官/首席技术官

6%

QA 工程师

5%

DBA

5%

业务分析师

4%

技术撰稿人

13%

其他

只有有工作的受访者回答了这个问题。

年龄范围

9%

18-20 岁

37%

21-29 岁

31%

30-39 岁

13%

40-49 岁

6%

50-59 岁

3%

60+

Python 经验

23%

不足 1 年

20%

1–2 年

29%

3–5 年

18%

6–10 年

10%

11 年以上

专业编码经验

33%

不足 1 年

19%

1–2 年

19%

3–5 年

12%

6–10 年

16%

11 年以上

您在哪个国家/地区?

所有不足 1% 的国家/地区都已合并到“其他”。

19%

美国

11%

印度

6%

德国

4%

中国大陆

4%

英国

4%

巴西

4%

法国

3%

俄罗斯联邦

2%

加拿大

2%

波兰

2%

意大利

2%

土耳其

方法和原始数据

想进一步挖掘数据吗?下载匿名调查回复,看看您能学到什么!在 X(以前称为 Twitter) 上使用话题标签 #pythondevsurvey 提及 @jetbrains@ThePSF,分享您的发现和见解。

在剖析这些数据之前,请注意以下要点:

数据集仅包括来自官方 Python Software Foundation 渠道的回复。滤除重复和不可信的回复后,数据集包括 2022 年 10 月至 12 月收集的超过 23,000 份回复,调查在 python.orgPSF 博客、官方 Python 邮寄名单和 Python 相关 subreddit 以及 PSF 的 Twitter 账户和 LinkedIn 帐号上进行了推广。为了防止调查偏向于任何特定的工具或技术,未使用任何与产品、服务或供应商相关的渠道收集回复。

数据均已匿名处理,不含个人信息或详细地理位置信息。为了防止经评论识别任何个别受访者身份,已删除所有开放式字段。

为了帮助您更好地理解调查的逻辑,我们将共享数据集、调查问题和调查逻辑。我们对答案选项采用了不同的排序方式(字母排序、随机排序和直接排序)。每个问题的答案顺序都经过特殊指定。

回复滤除标准

满足以下任何一项:

  • 未满 18 岁。
  • 没有回答调查第三页上的“您有多少年的专业编码经验?”这个问题。
  • 年龄在 21 岁以下,并拥有 11 年以上的专业编码经验。
  • 多项选择题的单选回答太多(不包括回答“无”)。
  • 来自相同电子邮件地址的多个回复(仅使用一个回复)。
  • 不使用 Python。

至少满足以下两项:

    • 使用超过 16 种编程语言。
  • 超过 9 种工作角色。
  • 回答“您使用 Python 做什么?”时选择了超过 11 个选项。
  • 所选国家/地区按字母顺序排在列表顶部,不在热门国家/地区之列。
  • 同时担任首席执行官和技术支持工作角色。
  • 担任首席执行官而未满 21 岁。
  • 总体选择的答案太多(几乎使用了数据科学、Web 开发、打包等的所有框架)。
  • 回答太快(每个问题不到 5 秒)。

我们再次代表 Python Software Foundation 和 JetBrains 感谢参与本次调查的所有人。在你们的帮助下,我们得以更准确地描绘 Python 社区的概况!

为 PSF 的经常性捐款活动做出贡献。PSF 是一个完全由赞助商、会员和公众支持的非营利组织。

查看 20212020201920182017 年的 Python 开发者调查结果。

探索 JetBrains 的其他大型调查报告

感谢您的参与!

重力

我们希望您觉得我们的报告很有用。与您的朋友和同事分享这份报告!

加入 JetBrains Tech Insights Lab

参与调查和 UX 研究,让 JetBrains 产品更易用、更强大。参与我们的研究,您还将有机会获得奖励。