Python易于使用,对初学者友好,功能强大,几乎可以为任何应用程序创建强大的软件。
但与任何其他软件一样,Python 的设置和管理可能很复杂。
在本文中,我们将介绍如何正确设置 Python。
您将学习如何选择合适的版本、如何防止多个版本相互干扰以及如何避免出现尖锐问题和潜在的陷阱。
选择正确的 Python 版本和发行版
在任何一个时间点,Python 的几个不同版本都在积极接收更新或至少是安全修复。
您可能认为选择最新版本是有意义的。
但是,为了与第三方模块兼容,选择比当前版本落后一个主要修订点的 Python 版本始终是最安全的。
在撰写本文时,Python 3.12 是最新发布的版本。因此,最安全的做法是使用最新更新的 Python 3.11。
您可以随时以可控的方式试用最新版本(稍后会详细介绍),但回退一个版本可以保证与常见的第三方 Python 包的最佳兼容性。
Python 和 Linux 一样,也有各种发行版。但与 Linux 不同的是,Python 提供了一个您可以随时使用的黄金标准“官方”版本:CPython,这是Python.org上 Python 软件基金会提供的版本。
这是最安全、兼容性最广泛的发行版,没有人会因为使用它而被解雇。您可能还想研究其他针对特定用例的 Python 发行版,但我们不会在这里讨论它们。
您可能需要做出的一个关键选择(尤其是在 Windows 上)是使用 32 位还是 64 位版本的 Python。最有可能的答案是 64 位,原因如下:
大多数现代操作系统默认使用 64 位版本的 Python。Windows 用户可以在 64 位 Windows 上运行 32 位版本的 Python,但性能会略有下降。
32 位 Python 和 32 位应用程序通常一次只能访问 4GB 内存。64 位应用程序没有此限制,因此许多 Python 数据分析和机器学习工具在 64 位版本中效果最佳。有些工具仅提供 64 位版本。
只有在你只能使用 32 位版本的 Windows 时,或者你需要使用仅在 32 位版本中提供的第三方模块时,你才应该选择 32 位版本的 Python。由于这种情况越来越少见,因此 64 位是常见的选择。
如何在 Windows 上安装 Python
Python 在 Windows 上的安装方式与任何其他应用程序类似,通过安装程序引导您完成安装过程。
默认情况下,Windows 版 Python 安装程序会将其可执行文件放在用户AppData目录中,这样就不需要管理权限了。
如果您是系统上的唯一用户,您可能希望将 Python 放在更高级别的目录中(例如C:\Python312),以便于查找。Windows 安装程序允许您指定目标目录。
为 Windows 选择正确的 Python 安装程序
Python.org 为 Windows 提供了各种版本的 Python。
除了前面提到的 32 位(“x86”)和 64 位(“x86-64”)版本外,您还可以选择可嵌入的 zip 文件、可执行安装程序和基于 Web 的安装程序。以下是这些版本的全部内容:
可执行安装程序:只是一个.exe运行 Python 安装过程的文件。这是最简单的默认选择,也是最常用的。
基于 Web 的安装程序:与可执行安装程序相同,只是它会单独下载执行安装所需的部分。这大大减少了实际安装程序的大小,但当然,它需要网络连接。
可嵌入的 zip 文件:是 Python 运行时的独立、最小副本,可放在单个文件夹中,没有任何依赖项。
当您想要手动分发 Python 应用程序,或者需要快速、一次性安装 Python 来动态测试某些东西时,捆绑它很有用。
但是可嵌入的 zip 不包含pip完整安装附带的任何其他有用工具,因此仅供专家使用。
使用 Windows 包管理器安装 Python
另一个选择是使用 Windows 包管理系统之一来安装 Python。
Windows 11 现在预装了微软自己的包管理解决方案Winget。(如果您使用的是 Windows 10,则可以手动安装winget。)
您可以通过指定版本从 Python.org 安装 Python 的官方版本,例如: winget install Python.Python.3.11,或者使用winget search Python.Python来查找可用的版本。
其他 Windows 包管理工具也提供 Python。.NET 的包管理器 NuGet在其存储库中提供 Python。但是,提供 Python 主要是为了将其用作.NET 应用程序中的组件,而不是作为一种安装 Python 独立实例以供一般使用的方式。
如果您以常规方式安装 Python,您可能会发现 Python 实例更易于管理。
Chocolatey是一款更通用的 Windows 包管理系统,也提供 Python。
Chocolateywinget是一种运行 Python 安装程序和跟踪系统中 Python 语言运行时存在的便捷方式,因此它是比 NuGet 更好的选择。
但是,最好避免在同一系统上混合使用 Chocolatey 安装、Python 安装和手动安装。最好总体上确定一个包管理解决方案并坚持使用。
如何在 Linux 上安装 Python
由于 Linux 发行版差异很大,在 Linux 上安装 Python 的典型方法是使用特定发行版的包管理器。
例如, Ubuntu和Fedora安装 Python 的过程完全不同。在 Linux(和 macOS)上,安装的目标目录通常是预先确定的,并基于 Python 版本号,例如/usr/bin/python3.X在 Linux 上,或/usr/local/opt/python/在 Mac 上。
另一个用于管理多个 Python 安装的 Linux 工具是pyenv。它允许您安装多个并行的 Python 版本,并在它们之间自由切换,无论是系统范围还是每个项目。
请注意,它pyenv会构建您为系统安装的每个版本的 Python,因此您需要事先安装 Python 构建依赖项。
避免处理 Linux 包管理器的复杂性的一种方法是使用容器化的 Python 运行时。容器独立于系统的其余部分运行,因此您不必担心不同的 Python 运行时会相互干扰。
但是,如果您的工作流程尚未包含容器,则需要投入时间和精力来熟悉 Docker。(请注意,您也可以在 Windows 上使用容器化的 Python。)
如何在 macOS 上安装 Python
传统上,macOS 会预装一个版本的 Python,但最新版本不会高于 Python 2.7。
当 Python 3 问世时,这带来了问题,因为这两个版本经常发生冲突。
官方 Python 文档对此有一些说明,但除了确保您使用所需的 Python 实例的正确路径之外,它没有提供任何更详细的建议。
在 macOS 上管理 Python 运行时的常用方法是通过Homebrew 包管理器,这是一个非官方(即不是 Apple 创建的)项目,已成为 Mac 上包管理的事实标准。
Homebrew 提供了一致的界面,用于下载、安装、管理和删除 Python 和其他第三方命令行应用程序。
Python 安装技巧和应避免的陷阱
我们讨论了在 Windows、Linux 和 macOS 上安装 Python 的基础知识。
最后,我们来总结一下三种需要更多技巧的常见安装场景。
如何不安装 Python 包(以及如何安装)
一旦设置了 Python 版本的基础安装,就不要开始直接在其中安装软件包pip—不,即使您只打算在一个项目中使用 Python。
设置您的项目目录,在其中安装 Python 虚拟环境,然后将软件包安装到这些虚拟环境中。这样,基础安装就会保持干净。
要以高级方式管理具有虚拟环境和依赖项的多个项目,请查看Poetry 项目。Poetry 提供了一个命令行工具,用于高级管理虚拟环境和依赖项。
如何并排安装多个 Python 版本
处理 Python 安装时最困难的问题是如何处理并排安装的不同版本的 Python。这里适用两个通用经验法则:
始终将每个版本安装在不同的目录中。
确保所有系统路径都配置为首先指向您想要默认运行的版本。
运行多个 Python 版本强烈支持每个项目都使用虚拟环境。激活虚拟环境后,项目上下文中的所有 Python 活动都会自动定向到正确的 Python 版本。
对于 Windows 用户来说,另一个选项是py启动器应用,它允许您控制在安装多个 Python 版本时使用哪个版本。
在 Python 安装过程中,您可以选择安装启动器py,这是一个小型可执行文件,允许您(通过命令行标志)选择要为给定脚本使用哪个版本的 Python。
例如,要运行pipPython 3.11,您需要输入py -3.11 -m pip。
如何在虚拟环境中升级 Python 版本
Python 的小版本升级(例如,从 Python 3.11.2 升级到 Python 3.11.3)通常相当容易。
在 Windows 上,安装程序会检测现有版本并对其进行升级。
在 Linux 和 macOS 上,安装程序或包管理器通常会执行相同的操作。
但是,您创建的任何虚拟环境也需要升级;它们不会自动升级。要在虚拟环境中升级 Python,只需导航到虚拟环境目录并输入venv --upgrade。再次注意,这仅适用于小点修订升级。
如果您要执行重大点修订升级,例如从 Python 3.11 升级到 Python 3.12,最好的办法是使用venv在项目目录中创建一个新的、单独的虚拟环境子目录,将任何依赖项重新安装到其中,然后切换到使用新的虚拟环境。
大多数支持 Python 的 IDE(例如 Microsoft Visual Studio Code)都会检测项目中的多个虚拟环境并允许您在它们之间切换。