Что означает опция -m в python? - PullRequest
0 голосов
/ 21 сентября 2018

При создании виртуальной среды я запускаю:

python3 -m venv env

Я понимаю, что -m выполняет модуль (venv в данном случае).Однако, что на самом деле означает флаг -m?

Это -m для модуля или -m для __main__?

Я не смог найти однозначного объяснения.Вот некоторые ресурсы, которые я исследовал:

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

в разделе 1.1.1. В нем четко указано, -m - это имя модуля, здесь .

Цитирование из документов:

", поскольку аргумент является именем модуля, вы не должны давать расширение файла (.py). Имя модуля должно быть допустимым Pythonимя модуля "

Хотя -m является произвольным, как в бэкэнде. Вся работа выполняется argparser.

При вызове с -m module-name указанный модуль находится в пути к модулю Python и выполняется в виде скрипта

Имена пакетов также разрешены.Когда вместо обычного модуля указано имя пакета, интерпретатор выполнит <pkg>.__main__ И я думаю, main, также начинающийся с 'm', является совпадением.

0 голосов
/ 21 сентября 2018

Модуль запускается после -m.См. официальную документацию

В документации указано -m <module-name>, а также "Поскольку аргумент является именем модуля ...", поэтому имеет смысл предположить, что "m" стоитдля модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...