附录 A:安装和故障排除

Python 有许多版本,在每个操作系统上的设置方法也不尽相同。如果第 1 章中的方法不起作用,或者您想安装与当前安装的不同版本的 Python,本附录中的说明可以提供帮助。

Windows 上的 Python

第 1 章中的说明介绍了如何使用 https://python.org 上的官方安装程序安装 Python。如果您在使用安装程序后无法运行 Python,本节中的故障排除说明应能帮助您启动并运行 Python。

使用 py 代替 python

如果运行最近的 Python 安装程序,然后在终端中发出 python 命令,就会出现 Python 终端会话提示 (>>>)。当 Windows 无法识别 python 命令时,它要么会打开 Microsoft 应用商店,因为它认为 Python 没有安装,要么就会显示诸如 "未找到 Python "之类的信息。如果打开了 Microsoft Store,请关闭它;最好使用 https://python.org 上的官方 Python 安装程序,而不是微软维护的那个。

最简单的解决方案是尝试使用 py 命令,而无需对系统进行任何更改。这是一个 Windows 实用程序,可以查找系统中安装的最新 Python 版本,并运行该解释器。如果该命令可以运行,并且您想使用它,只需在本书中看到 python 或 python3 命令的任何地方使用 py 即可。

重新运行安装程序

Python 无法运行的最常见原因是,人们在运行安装程序时忘记选择将 Python 添加到 PATH 选项;这是一个很容易犯的错误。PATH 变量是一个系统设置,它告诉 Python 在哪里查找常用程序。在这种情况下,Windows 不知道如何找到 Python 解释器。

在这种情况下,最简单的解决方法就是重新运行安装程序。如果 https://python.org 上有更新的安装程序,下载并运行新的安装程序,确保选中 Add Python to PATH 复选框。

如果您已经有了最新的安装程序,请再次运行并选择 "修改" 选项。您将看到一个可选功能列表;在此页面上保留默认选项。然后单击 "下一步",勾选 "将 Python 添加到环境变量" 框。最后,单击安装。安装程序会识别出已经安装了 Python,并将 Python 解释器的位置添加到 PATH 变量中。确保关闭所有打开的终端,因为它们仍在使用旧的 PATH 变量。打开一个新的终端窗口,再次发出 python 命令;您应该会看到 Python 提示 (>>>)。

macOS 上的 Python

第 1 章中的安装说明使用的是 https://python.org 上的 Python 官方安装程序。官方安装程序多年来一直运行良好,但也有一些问题会让您偏离正轨。本节将帮助您解决安装过程中出现的问题。

不小心安装了Apple版本的Python

如果运行 python3 命令,而系统中尚未安装 Python,那么很可能会出现需要安装命令行开发工具的提示。此时最好的办法是关闭显示此消息的弹出窗口,从 h ttps://python.org 下载 Python 安装程序,然后运行安装程序。

如果此时选择安装命令行开发工具,macOS 将在安装开发工具的同时安装 Apple 版本的 Python。这样做的唯一问题是,Apple 的 Python 版本通常比最新的官方 Python 版本落后一些。不过,你仍然可以从 https://python.org 下载并运行官方安装程序,然后 python3 就会指向更新的版本。不用担心是否安装了开发者工具;其中有一些有用的工具,包括附录 D 中讨论的 Git 版本控制系统。

旧版本 macOS 上的 Python 2

在 Monterey (macOS 12) 之前的旧版本 macOS 上,默认安装的是过时版本的 Python 2。在这些系统上,命令 python 指向过时的系统解释器。如果您使用的是安装了 Python 2 的 macOS 版本,请确保使用 python3 命令,这样您将始终使用您安装的 Python 版本。

Linux 上的 Python

几乎每个 Linux 系统都默认包含 Python。但是,如果您系统中的默认版本早于 Python 3.9,则应安装最新版本。如果您想要最新的功能,如 Python 改进的错误信息,也可以安装最新版本。以下说明适用于大多数基于 apt 的系统。

使用默认的 Python 安装

如果要使用 python3 指向的 Python 版本,请确保安装了这三个附加软件包:

$ sudo apt install python3-dev python3-pip python3-venv

这些软件包包括对开发人员有用的工具,以及让你安装第三方软件包的工具,比如本书项目部分使用的工具。

安装最新版本的 Python

我们将使用一个名为 deadsnakes 的包,它可以轻松安装多个版本的 Python。输入以下命令:

$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.11

这些命令将在系统中安装 Python 3.11。

输入以下命令启动运行 Python 3.11 的终端会话:

$ python3.11
>>>

如果你在本书中看到 python 命令,请使用 python3.11 代替。从终端运行程序时,也要使用该命令。

要充分利用 Python 安装,您还需要安装两个软件包:

$ sudo apt install python3.11-dev python3.11-venv

这些软件包包括安装和运行第三方软件包(如本书后半部分项目中使用的软件包)时所需的模块。

deadsnakes 软件包已被积极维护了很长时间。当 Python 推出新版本时,您可以使用相同的命令,将 python3.11 替换为当前可用的最新版本。

检查您正在使用哪个版本的 Python

如果您在运行 Python 或安装其他软件包时遇到任何问题,了解您正在使用的 Python 的确切版本会很有帮助。您可能安装了多个 Python 版本,但不清楚当前使用的是哪个版本。

在终端中发出以下命令

$ python --version
Python 3.11.0

这将准确地告诉你 python 命令当前指向的版本。更短的命令 python -V 也会给出相同的输出结果。

Python 关键字和内置函数

Python 自带一系列关键字和内置函数。当您在 Python 中命名事物时,注意这些是很重要的:您的名称不能与这些关键字相同,也不应该与函数名相同,否则您就会覆盖函数。

在本节中,我们将列出 Python 的关键字和内置函数名,这样您就会知道哪些名称需要避免。

Python 关键字

以下每个关键字都有特定含义,如果尝试使用其中任何一个关键字作为变量名,都会出现错误。

False

await

else

import

pass

None

break

except

in

raise

True

class

finally

is

return

and

continue

for

lambda

try

as

def

from

nonlocal

while

assert

del

global

not

with

async

elif

if

or

yield

Python 内置函数

如果使用以下随时可用的内置函数作为变量名,就不会出错,但会覆盖该函数的行为:

abs()

hash()

slice()

aiter()

help()

sorted()

all()

hex()

staticmethod()

any()

id()

str()

anext()

input()

sum()

ascii()

int()

super()

bin()

isinstance()

tuple()

bool()

issubclass()

type()

breakpoint()

iter()

vars()

bytearray()

len()

zip()

bytes()

list()

__import__()

callable()

locals()

chr()

map()

classmethod()

max()

compile()

memoryview()

complex()

min()

delattr()

next()

dict()

object()

dir()

oct()

divmod()

open()

enumerate()

ord()

eval()

pow()

exec()

print()

filter()

property()

float()

range()

format()

repr()

frozenset()

reversed()

getattr()

round()

globals()

set()

hasattr()

setattr()