Какой Python действительно запущен
Один и тот же вопрос спасёт вас от половины будущих проблем с окружениями: «а какой именно интерпретатор сейчас работает?»
Если на компьютере может быть несколько Python (системный + установленный вами, а позже
ещё и виртуальные окружения), рано или поздно встаёт вопрос: какой именно Python
сейчас запускается командой python? Хорошая новость —
сам Python умеет отвечать на этот вопрос.
sys.executable — самый честный ответ
Каждый запущенный интерпретатор Python знает точный путь к своему собственному
исполняемому файлу. Он хранится в переменной sys.executable.
import sys
print(sys.executable)
print(sys.version)
Запустите это двумя способами и сравните результат — из обычного терминала и (когда дойдём до VS Code, раздел 2.8) из встроенного терминала редактора. Если пути отличаются — значит, в этих двух местах запускаются разные интерпретаторы, и это многое объясняет, если пакет «установлен», а импорт всё равно падает (см. диагностику в разделе 2.16).
which / where — короткая версия из терминала
Не запуская Python вовсе, можно спросить у самого shell, какой файл он найдёт первым по PATH (вспомните раздел 2.2):
which python3
where.exe python
which python3 (или where.exe python) и сравните путь с тем, что печатает sys.executable изнутри Python. Они должны совпадать — если нет, значит переменная PATH ссылается не на тот интерпретатор, который вы ожидали.sys.executable и sys.version — в модуле sys на docs.python.org.