Глава 2 · Давайте установим Python!

Терминал, shell и PATH

Одно из самых важных объяснений этой главы: что на самом деле происходит, когда вы вводите команду и нажимаете Enter.

Терминал и shell

Терминал — окно программы, где вы вводите текстовые команды и видите текстовый ответ компьютера. Shell (командная оболочка) — программа, которая внутри терминала на самом деле читает вашу команду и решает, что с ней делать. На Windows это обычно PowerShell или классическая cmd, на macOS и Linux — чаще всего zsh или bash.

Команда обычно состоит из имени программы и, при необходимости, аргументов — дополнительных слов после неё: в python --version само python — команда, а --version — аргумент.

Путь, файловая система и текущая папка

Shell всегда «стоит» в какой-то одной папке — она называется текущей рабочей папкой (current directory). Путь (path) — это адрес файла или папки в файловой системе. Путь бывает:

Переменная окружения PATH

Когда вы вводите короткую команду вроде python, компьютер не ищет файл по всему диску — это заняло бы слишком много времени. Вместо этого shell смотрит в специальный список папок — переменную окружения PATH — и проверяет их по очереди в заданном порядке, пока не найдёт исполняемый файл с таким именем.

PATH (Linux/macOS, упрощённо)
/usr/local/bin
/usr/bin
/bin
~/.local/bin

Если вы наберёте python, shell проверит /usr/local/bin/python, затем /usr/bin/python и так далее — и запустит первый найденный файл. Если ни в одной из папок PATH такого файла нет — вы увидите ошибку вроде command not found (macOS/Linux) или 'python' is not recognized... (Windows).

Вы вводите командунапример, pythonShell получает текстпрограмма-командная оболочкаПоиск по PATHshell проверяет папки по очередиИсполняемый файл найденпервое совпадение побеждаетКоманда запускаетсяили «command not found», если нигде не нашлось
Что происходит, когда вы нажимаете Enter после команды
Типичная ошибка
Если на компьютере установлено два разных Python, а в PATH они перечислены не в том порядке, который вы ожидаете, — команда python может запускать совсем не ту версию, которую вы только что установили. Раздел 2.6 научит это проверять.
Официальный источник
Подробное объяснение переменных окружения — в документации вашей операционной системы; для самого Python — раздел «Using Python on Unix platforms» / «Using Python on Windows» на docs.python.org.