Python 的版本选择与安装
约 986 字大约 3 分钟
2025-04-03
Python 版本的选择
和所有编程语言和开发工具一样,应该使用哪个版本的 Python 进行编程一直是很有争议的话题。Python 下载页面展示了 Python 各版本的状态、发布时间和终止支持的时间等信息。Python3.8 版本已于 24 年 10 月终止官方支持,所以不建议使用更早的版本
从 Python3.8 版本开始,每月十月初 Python 都会公布新的 Python 大版本,目前最新正式版已经是 Python3.13。可令人诧异的是,我最近还听到了建议使用 Python3.6 或者 Python3.8 这些老旧版本的言论。他们的理由是老的版本不会有兼容性问题。这是老顽固(原谅我)们一贯使用的理由。但是以我的经验来看,这些所谓的兼容性问题更多的是杞人忧天。我从来都是喜欢使用尽可能新的版本的编程语言和开发工具的。确实遇到过一些兼容性的问题,但是从未遇到过无法解决的兼容性问题。其实使用新版本是有很多好处的,比如有很多好用的新特性,运行速度会在不改代码的情况下有明显优化,会修复很多已知的安全漏洞,对新工具的支持更好,等等
这里提供几个选择 Python 版本的思路供参考:
如果公司或客户有要求指定的 Python 版本,按照要求的来
有些第三方包有针对 Python 版本的要求,如果对某个包有刚需,按要求来吧
使用尽可能新的版本
绝对不要使用 Python3.6 以前的版本
可以根据 某个版本引入哪些新功能 考虑使用哪些版本,比较典型的有:
- Python3.6 字典变有序,以及引入f-字符串(这两项都是重大改变,所以无论如何也不能使用 3.6 之前的 Python 版本)
- Python3.7 新增关键字 await 和 async(这也意味着 Python3.6 之前的包或者变量名可以是
await
或者async
,如果代码里真的这么做了,直接移植到 3.7 之后的版本是会出问题的。我在之前将某个项目从 3.6 版本升级到 3.8 版本时就遇到过这个问题,因为之前某个包被命名为async
导致异常) - Python3.9 字符串新增 removeprefix 和 removesuffix 方法,弥补了
strip
方法令人迷茫的行为 - Python3.10 match...case 模式匹配(这个更新其实用处不大,但也能解决一些问题。需要注意的是,这个版本之后,虽然
match
和case
不是 Python 的关键字,但是也不要使用它们做标识符) - Python3.11 较 3.10 提速 10-60%(很诱人的更新)
- Python3.12
f-字符串
改进(用处不大,但是如果使用了这个特性就不能使用旧版本) - Python3.13 实验性移除 GIL 锁(真没必要,对性能无提升,且默认不开启)
再有一个要关注的就是如果是生产环境尽量选 security 的版本,同时也要考虑个版本的维护期限,不要选择已经或者很快就要停止维护的版本
下载安装
下载安装包后和普通的软件安装方式一样,这里不赘述。唯一一点需要提到的是,Windows 安装的话需要勾选
Add Python 3.6 to PATH
,这样就不需要再手动配置环境变量了
终端输入 python
(如果系统有其他版本的 Python,需要制定版本号,例如 python3.13
),即可进入 Python 命令行。输入 print('Hello World!')
运行第一个 Python 代码(exit()
退出 Python 命令行):
版权所有
版权归属:Shuo Liu