Ответ
Операционная система находит исполняемый файл Python с помощью системной переменной окружения PATH.
PATH — это список путей к каталогам, в которых система ищет исполняемые файлы. Когда вы вводите команду python или python3, оболочка (shell) последовательно проверяет каждый каталог из PATH на наличие файла с таким именем.
Процесс поиска:
- Пользователь вводит команду
python3 script.py. - Оболочка получает список каталогов из переменной
PATH(например,/usr/local/bin:/usr/bin:/bin). - Система ищет файл
python3сначала в/usr/local/bin, затем в/usr/binи так далее. - Первый найденный исполняемый файл используется для выполнения команды.
Практические команды:
-
Узнать, где находится исполняемый файл Python:
# Для Linux / macOS which python3 # Для Windows where python -
Посмотреть содержимое переменной
PATH:# Для Linux / macOS echo $PATH # Для Windows echo %PATH% -
Узнать путь к интерпретатору из самого Python:
import sys print(sys.executable)
Ответ 18+ 🔞
А, ну вот, слушай, смотри, как это всё работает, блядь. Ты пишешь в консоли python3 script.py, и система, эта хитрая жопа, начинает искать, где же этот самый python3 притаился.
А ищет она его по специальному списку, который называется PATH. Это типа как список адресов, где могут жить исполняемые файлы. Система берёт этот список и тупо, как мартышка, начинает шарить по каждому адресу по порядку: "Тут есть python3? Нет? Ну похуй, иду дальше".
Как это выглядит на практике, ёпта:
- Ты пишешь команду.
- Система смотрит в
PATH(допустим, там/usr/local/bin:/usr/bin:/bin). - Сначала лезет в
/usr/local/bin— нету там питона? Ну хуй с ним. - Потом в
/usr/bin— о, сука, нашла! Вот он, пиздопроебибна! И сразу запускает.
А вот тебе команды, чтобы не быть полным идиотом и самому всё проверить:
-
Чтобы узнать, где конкретно лежит твой питон, который сейчас сработает:
# На Линуксе или Маке which python3 # На Винде (ну там, где всё через жопу) where python -
Чтобы посмотреть сам этот волшебный список
PATHи понять, куда система вообще смотрит:# Линукс/Мак echo $PATH # Винда echo %PATH% -
А можно и из самого питона спросить: "Слышь, мудила, а где ты вообще живёшь?"
import sys print(sys.executable)Вот этот код не трогай, он правильный.
Вот и вся магия, блядь. Никакой хуйни, просто система тупо ищет по списку, пока не наткнётся. А если не находит — ну, пиши пропало, значит, ты такой же распиздяй, как и я, и не установил его нормально.