试驾一下

新的 Python 版本总是带来显著改进的小玩意。以 3.11 为例,它承诺提高了高达 60% 的性能,并于去年十月交付。
除了新功能的承诺外,测试未发布的 Python 版本有助于开发人员更快地发现错误,并让其他人参与开发过程。通过利用新功能,还有真正的可能获得竞争优势,在大众之前推出新功能。
即使这些不足以令人信服,炫耀自己在社交媒体上比大众更早地检查了新的 Python 版本也总是很酷的。
那么,让我们开始吧。
步骤 0:安装 Docker
之所以并非每个人都能访问新版本的 Python,是因为它们被很好地隐藏起来了。它们在 Python.org 上没有下载链接。相反,它们托管在官方 Python Docker 镜像页面上:

正如您所看到的,该镜像已经下载了超过 10 亿次。如果您向下滚动一点,您将看到不同的 Python 镜像变体:

我们想安装未发布的 Python 3.12,但有数十个变体可供选择。哪一个是最好的选择?
在回答这个问题之前,请确保已安装 Docker Desktop,并能够成功在 CLI 上运行docker --version。
我们使用 Docker 镜像和容器的原因是它们是安全且隔离的。如果 Python 3.12 在容器内部,它不会破坏您的环境。最重要的是,我们没有其他选择,只能使用容器 🙂
本教程中您不必了解有关 Docker 的任何信息。
步骤 1:选择图像
那么,Python 镜像标记中的 alpine、rc、bookworm、slim 和 bullseye 这些词是什么意思?这些术语用于告知我们每个镜像中使用的基本操作系统。这里是它们的定义:
alpine: 使用 Alpine Linux 发行版的镜像以其小巧和专注于安全的设计而闻名。bookworm: Bookworm 是 Debian OS 12 的代号,是一种流行的发行版,以其稳定性和广泛的软件适应性而闻名。bullseye(酷名):Bullseye 是另一个 Debian(版本 11)的代号。slim: 这是一种专注于减小大小占用的镜像变体。这些镜像被削减到仅包括运行 Python 应用程序所需的基本组件和依赖项,使它们更轻便、高效。0bn: 带有0b的标记代表测试版本。例如,0b2镜像是 Python 3.12 Beta 2 版本。Python 3.12 的最终测试版(0b4)将于 2023 年 7 月发布。rc: 具有此标记的镜像是发布候选版本。RCs 被认为是潜在稳定的,并准备好发布,但需要进一步测试和反馈。
我们将选择其中一个发布候选版本,具体而言是 3.12-rc-bookworm。就是 Debian 12。
查看 Python 3.12 发布计划。
第 2 步:拉取镜像
首先,请确保 Docker Desktop 正在运行,启动应用程序并检查状态:

然后,在任何终端上运行以下命令并等待:
$ docker pull python:3.12-rc-bookworm
该命令将从 Docker Hub 拉取官方镜像。
等待时:Docker 镜像是一个轻量级、独立和可执行的包,包括运行软件所需的所有内容,包括代码、运行时、系统工具、库和配置。
另一方面,Docker 容器是 Docker 镜像的运行实例。一旦拉取完成,我们将启动这样一个容器。
Docker:现代数据科学家不能忽略的 6 个概念(2023 年)
编辑描述
towardsdatascience.com
第 3 步:启动容器
请击鼓!我们将第一次接触新的 Python 3.12。要执行此操作的命令是……(请在此处悬停,制造戏剧性的沉默):
$ docker run -it python:3.12-rc-bookwormPython 3.12.0b2 (main, Jun 14 2023, 17:45:20) [GCC 12.2.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
亲爱的朋友们,我们就是这样。该命令从 3.12-rc-bookworm 镜像启动了一个容器,并添加了 -it 标记以启动 Python 解释器。现在,您可以在交互式 shell 中执行任何操作。
有一些想法,请查看官方文档中的“3.12 中的新内容”文章。我首先会尝试那些改进的错误消息。
要退出 shell 和容器,请运行
exit()。
第 4 步:将 VSCode 链接到容器
你不认为我们要来到这里只是在愚蠢的 shell 中运行一堆表达式吧?
哦,不。我们将链接 Python 3.12 的容器到 VSCode,并编写一些脚本来真正测试新版本。
因此,在您计算机上的任何目录中,打开 VSCode(我希望您已将其配置为 Python 和数据科学)。
$ cd some_dir$ code . # 启动 VSCode
然后,安装 Remote Development 扩展:

重新加载 VSCode。然后,跳转到您的 Docker Desktop 并单击“容器”菜单:

您将看到正在运行的容器列表。我的 Python 3.12 版本名为 adoring_dirac。现在它没有运行,因为我已经退出了我的 CLI 中的 Python shell。要运行它,我按下播放按钮,启动容器。
现在,再次转到 VSCode 并打开命令面板(Ctrl + Shift + P),搜索“Attach to running containers”。以下是有用的 GIF:

当你点击以Python 3.12为基本镜像的运行容器实例时,会弹出一个新的VSCode窗口,直接与容器相连。
请记住,这个容器与你的操作系统隔离,因此你创建或编辑的任何文件以及启动的任何终端会话都会被隔离,不可见。
所以,这是你在容器内尝试测试Python 3.12的绿灯。除了创建脚本之外,

你还可以安装其他软件,如Conda、Git、DVC等,几乎可以将容器视为只安装有Python 3.12的全新空白计算机。
结论
你还可以将所述方法应用于安装未来的Python版本到其他工具或库中。例如,像TensorFlow或PyTorch这样的热门框架在Docker Hub上有官方Docker镜像可用。
通过利用这些官方镜像,可以轻松设置带有GPU支持的框架,消除任何复杂性或挑战。Docker容器预配置,确保无忧安装体验。
感谢阅读!
喜欢这篇文章,还有它奇怪的写作风格吗?想象一下,你还可以访问更多像它一样的文章,都是由一个聪明、迷人、风趣的作者(顺便说一下,就是我:)撰写的。
只需支付4.99美元的会员费,你不仅可以获得我的故事,还可以获得小猪AI上最聪明、最有才华的思想珍宝。如果你使用我的推荐链接,你将获得我的超新星感激之情和虚拟高五,支持我的工作。
使用我的推荐链接加入小猪AI — Bex T.
作为小猪AI会员,你的会员费的一部分将支付给你阅读的作家,你将获得每个故事的完全访问权限…
ibexorigin.medium.com