这是由 Python Software Foundation 和 JetBrains 共同开展的第六次官方年度 Python 开发者调查。回复于 2022 年 10 月至 12 月收集,来自近 200 个国家和地区的超过 23,000 名 Python 开发者和爱好者参与了调查,揭示了该语言及其生态系统的现状。
主要
辅助
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 最受欢迎。
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
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 用于工作相关项目,超过一半的受访者将其与个人项目结合使用。
51%
51%
数据分析
43%
45%
Web 开发
36%
36%
机器学习
34%
36%
DevOps/系统管理/编写自动化脚本
30%
31%
Web 解析器/采集器/抓取工具编程
53%
44%
数据分析
45%
31%
Web 开发
37%
29%
机器学习
35%
34%
DevOps/系统管理/编写自动化脚本
30%
28%
Web 解析器/采集器/抓取工具编程
数据分析
Web 开发
机器学习
DevOps/系统管理/编写自动化脚本
Web 解析器/采集器/抓取工具编程
教育目的
软件测试/编写自动化测试
软件原型设计
桌面开发
网络编程
计算机图形
游戏开发
嵌入式开发
移动开发
多媒体应用程序开发
其他
22%
23%
Web 开发
18%
17%
数据分析
12%
11%
机器学习
10%
10%
DevOps/系统管理/编写自动化脚本
9%
9%
教育目的
使用 Python 作为主要语言的受访者大多将其用于 Web 开发 (23%)。
作为辅助语言,Python 最常用于数据分析 (16%) 和 DevOps (14%),Web 开发排在第三位 (13%)。
只有参与数据分析和机器学习的受访者回答了这个问题。
在参与数据分析和机器学习的 Python 使用者中,约三分之一认为自己是数据科学家。
2022 年
2021 年
2020 年
2019 年
2018 年
2017 年
超过 90% 的受访者已经实现 Python 3,
可以说已经获得了主流认可。
Python 2 的用户数量在过去 3 年几乎保持不变,低于 7%。尽管如此,仍有一些人将版本 2 用于数据分析 (29%)、计算机图形 (24%) 和 DevOps (23%)。
54%
29%
数据分析
46%
19%
Web 开发
38%
13%
机器学习
36%
23%
DevOps/系统管理/编写自动化脚本
32%
13%
Web 解析器/采集器/抓取工具编程
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 日才发布。
的 Python 使用者表示不更新 Python 版本,6% 表示由其他人管理更新。
使用 Windows 的受访者通过 python.org 安装 Python,而最受 macOS 和 Linux 用户欢迎的选项是操作系统提供的 Python、Python.org、Docker 容器和 pyenv。
注意:Enthought 的份额不到 0.5%,已被合并到“其他”中。
Poetry 正慢慢成为更流行的 Python 环境隔离工具。2020 年以来,它增加了 6 个百分点。工具看起来很有前途,它的一些特性已经在核心 Python 中实现。
Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。
所有其他框架加起来只能勉强排在第三位。去年以来,FastAPI 增加了 4 个百分点,现在有四分之一的 Python 开发者使用它。
您可以在 2022 Django 开发者调查中找到关于 Django 概况的更多信息,该调查是与 Django Software Foundation 合作开展的。
尽管排名前 3 的框架与 2021 年相比没有变化,但 Requests 已经向 httpx 让出了 4 个百分点。
一般来说,大公司更有可能在 Python 项目中使用单元测试,并且比小公司更广泛地采用 pytest 和 mock。
SQLAlchemy
Django ORM
Raw SQL
SQLObject
Peewee
Tortoise ORM
PonyORM
Dejavu
其他
无数据库开发
MS SQL Server 和 Oracle Database 在数据科学家中的受欢迎程度是 Web 开发者的两倍,而大多数其他数据库在 Web 开发者中的采用率要高得多。
31% 的 Python 开发者使用大数据工具,自 2021 年以来增长了 6 个百分点。在数据科学家中,这个数字达到 42%,谁能想到呢?
的 Python 开发者使用云平台 – 比去年增加了 5 个百分点。
只有使用云平台的受访者回答了这个问题。
在非洲的 Python 使用者中,Heroku 是最受欢迎的云平台,有 39% 的开发者使用。开发者使用的其他语言也会影响他们对平台的选择。
不出所料,C# 用户使用 Microsoft Azure 的频率几乎与 AWS 一样高。Go 和 TypeScript 开发者是最活跃的云平台用户,超过 80% 使用云。
47%
48%
在容器内
41%
41%
在虚拟机中
27%
27%
在平台即服务上
27%
24%
无服务器
2%
2%
其他
只有使用云平台的受访者回答了这个问题。
53%
56%
使用 virtualenv
41%
40%
在 Docker 容器中
20%
21%
在虚拟机中
19%
17%
在远程开发环境中
18%
18%
使用本地系统解释器
只有使用云平台的受访者回答了这个问题。
使用 virtualenv 进行本地开发的受欢迎程度持续下降,自 2020 年以来下降了 7 个百分点。使用 Python 进行 Web 开发的受访者最常使用它。
远程开发环境的使用率正在缓慢稳步上升,自 2020 年以来增加了 3 个百分点。它最常用于机器学习、网络编程和 DevOps。
Linux
Windows
macOS
BSD
其他
与去年相比,macOS 和 Windows 的受欢迎程度几乎保持不变,而 Linux 的使用率下降了 4 个百分点。
GitHub Actions 的人气持续走高,现在有超过三分之一的 Python 开发者使用它。
与 2021 年相比,CI 工具的总体采用率也上升了 4 个百分点。
的受访者使用持续管理工具,其中 Ansible 最受欢迎,11% 的受访者更喜欢使用自定义解决方案。
Sphinx
MKDocs
Doxygen
其他
我不使用任何文档工具
39% 的 Python 使用者使用文档工具,首选 Sphinx,与去年持平。
在编辑器中使用自动补全
为项目使用 Python 虚拟环境
重构代码
使用版本控制系统
使用代码 lint 分析
为代码编写测试
使用 SQL 数据库
使用调试器
使用可选的类型提示
在远程机器上运行/调试或编辑代码
使用持续集成工具
使用问题跟踪器
使用代码覆盖率
使用 Python 分析器
使用 NoSQL 数据库
PyCharm 和 VS Code 是 Python 开发的前两大 IDE,有三分之二的受访者选择。
只有 14% 的受访者只使用一款 IDE 或编辑器,绝大多数 (61%) 同时使用 2-3 款 IDE 或编辑器。26% 的 Python 开发者更喜欢 PyCharm 作为额外 IDE,四分之一选择 VS Code。
为了确定最受欢迎的编辑器和 IDE,我们提出了一个单选问题“您为当前的 Python 开发使用的主要编辑器是什么?”。
40%
44%
VS Code
25%
37%
PyCharm
3%
4%
Vim
2%
2%
Emacs
2%
3%
Sublime Text
Web 开发是指回答“您最常使用 Python 做什么?”这一问题时选择“Web 开发”的人群。数据科学是指同一问题下选择“数据分析”或“机器学习”的人群。
1
2
3
4
5+
的 Python 开发者使用工具隔离项目之间的环境,前 3 位解决方案是 venv、virtualenv 和 Conda。
自去年以来,在容器中使用虚拟环境的开发者数量增加了 5 个百分点。
76%
81%
pip
29%
32%
venv(标准库)
26%
30%
容器(例如通过 Docker)
23%
22%
Conda
18%
23%
virtualenv
虽然前 3 名的工具与一年前相同,但它们的受欢迎程度都在慢慢下降。与此同时,Poetry 的使用率增加了 2 个百分点。
与 2021 年相比,使用标准库模块 venv 的人数增加了 5 个百分点。
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 直接支持。
的 Python 开发者使用工具来管理应用程序依赖项的版本。Poetry、pipenv 和 pip-tools 是用于此目的的主要工具,在开发者中的使用率几乎相等。
的 Python 开发者仍然手动更新应用程序依赖项的版本,比一年前下降了 5 个百分点。
poetry
pipenv
pip-tools
其他
无
只有使用某些工具来管理应用程序依赖项的精确/确切版本的受访者回答了这个问题。
PyPI 的使用率下降了 7 个百分点,其他软件包安装方法的使用率与 2021 年几乎持平。
的 Python 使用者使用 Python 开发应用程序,其中 Setuptools、Wheel、build 和 Poetry 是最流行的工具。
只有开发应用程序的受访者回答了这个问题。
虽然有超过一半的 Python 用户开发应用程序,但其中只有 41% 的人已经将这些应用发布到软件包仓库。
PyPI
私有 Python Package Index
PyPI 的内部镜像
conda-forge
其他
只有发布了 Python 应用程序软件包的受访者回答了这个问题。
的受访者已经开发并打包了 Python 库。用于此目的的最流行解决方案通常与 Python 应用程序开发相同。
开发了自己的 Python 库的受访者已经将其发布,主要使用 PyPI 或私有 Python Package Index。
只有开发 Python 库的受访者回答了这个问题。
59%
71%
Setuptools
39%
42%
Wheel
30%
26%
build
24%
20%
Poetry
8%
5%
conda-build
PyPI
私有 Python Package Index
PyPI 的内部镜像
conda-forge
其他
只有发布了打包 Python 库的受访者回答了这个问题。
有趣的是,与去年相比,PyPI 的使用率下降了 9 个百分点,而 PyPI 内部镜像的人气上升了 5 个百分点。
独立完成自己的项目
在团队中工作
担任外部顾问或培训师
参与一个主项目和几个编外项目
参与许多不同的项目
只参与一个项目
只有在公司工作的受访者回答了这个问题。
2-7 人
8-12 人
13-20 人
21-40 人
40+
只有在公司工作的受访者回答了这个问题。
只有在公司工作的受访者回答了这个问题。
只有在公司工作的受访者回答了这个问题。
只有有工作的受访者回答了这个问题。
18-20 岁
21-29 岁
30-39 岁
40-49 岁
50-59 岁
60+
不足 1 年
1–2 年
3–5 年
6–10 年
11 年以上
不足 1 年
1–2 年
3–5 年
6–10 年
11 年以上
所有不足 1% 的国家/地区都已合并到“其他”。
想进一步挖掘数据吗?下载匿名调查回复,看看您能学到什么!在 X(以前称为 Twitter) 上使用话题标签 #pythondevsurvey 提及 @jetbrains 和 @ThePSF,分享您的发现和见解。
满足以下任何一项:
至少满足以下两项:
我们再次代表 Python Software Foundation 和 JetBrains 感谢参与本次调查的所有人。在你们的帮助下,我们得以更准确地描绘 Python 社区的概况!
为 PSF 的经常性捐款活动做出贡献。PSF 是一个完全由赞助商、会员和公众支持的非营利组织。
我们希望您觉得我们的报告很有用。与您的朋友和同事分享这份报告!