Меня несколько заинтересовал этот вопрос.Поэтому я сделал несколько взломов.
Во-первых, я изменил site.py в каталоге библиотеки Python, вставив строку print(__name__)
.Результат был
$ python -m site
site
Затем я добавил файл mymodule.py в папку библиотеки с одной строкой print(__name__)
.Теперь результат был
$ python -m mymodule
site
__main__
Таким образом, кажется, что модуль site импортируется до того, как команда python -m site
запустит этот модуль как скрипт.Когда он снова импортируется для выполнения скрипта, python пропускает вторичный импорт.