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

Какой Python действительно запущен

Один и тот же вопрос спасёт вас от половины будущих проблем с окружениями: «а какой именно интерпретатор сейчас работает?»

Если на компьютере может быть несколько Python (системный + установленный вами, а позже ещё и виртуальные окружения), рано или поздно встаёт вопрос: какой именно Python сейчас запускается командой python? Хорошая новость — сам Python умеет отвечать на этот вопрос.

sys.executable — самый честный ответ

Каждый запущенный интерпретатор Python знает точный путь к своему собственному исполняемому файлу. Он хранится в переменной sys.executable.

python
import sys
print(sys.executable)
print(sys.version)

Запустите это двумя способами и сравните результат — из обычного терминала и (когда дойдём до VS Code, раздел 2.8) из встроенного терминала редактора. Если пути отличаются — значит, в этих двух местах запускаются разные интерпретаторы, и это многое объясняет, если пакет «установлен», а импорт всё равно падает (см. диагностику в разделе 2.16).

which / where — короткая версия из терминала

Не запуская Python вовсе, можно спросить у самого shell, какой файл он найдёт первым по PATH (вспомните раздел 2.2):

macOS / Linux
which python3
Windows (PowerShell)
where.exe python
Лаборатория: «два Python»
Если на вашем компьютере одновременно есть системный Python и Python с python.org, выполните which python3 (или where.exe python) и сравните путь с тем, что печатает sys.executable изнутри Python. Они должны совпадать — если нет, значит переменная PATH ссылается не на тот интерпретатор, который вы ожидали.
Официальный источник
Подробнее про sys.executable и sys.version — в модуле sys на docs.python.org.