В чем разница между вызовами python path / to / file.py и python -m path.to.file?
Python -m module_name
является ярлыком для вызывая определенный модуль. Часто это установленный пакет с модулем __main__.py
внутри. (например, python -m pip
вызывает pip/__main__.py
Так что python -m pip
эквивалентно python path/to/my/python/lib/site-packages/pip/__main__.py
Как это влияет на рабочий каталог? (os.getcwd ())
Не
Имеет ли он ссылку на наличие / отсутствие файла init .py, расположенного в пути / к?
Во-первых: может возникнуть некоторая путаница, которую стоит прояснить: python -m
не принимает путь в качестве аргумента. Для выполнения требуется имя модуля.
Итак, короткий ответ: нет.
Длинный ответ: как модуль, выполняемый по имени с python -m
, зависит от того, является ли он пакетом. Наличие __init__.py
может означать, что каталог это имя пакета, например pip, поэтому он будет искать __main__
внутри пакета.