Еще одна вещь, которую я думаю, стоит упомянуть, когда выполнить
python -m some_package some_arguments
Python Interpretor будет искать файл __main__.py
в пути пакета для выполнения. Это эквивалентно:
python path_to_package/__main__.py somearguments
Он выполнит содержимое после:
if __name__ == "__main__":
если файл не существует, этот пакет не может быть выполнен напрямую.