python3 -m pip install VS pip3 install - PullRequest
       0

python3 -m pip install VS pip3 install

2 голосов
/ 21 марта 2020

Я всегда использую pip install (что, я думаю, эквивалентно pip3 install, поскольку у меня только python3 в моем env) для установки пакетов. Но я недавно слышал, python3 -m pip install лучше. Почему?

Ответы [ 2 ]

1 голос
/ 21 марта 2020

Я бы не советовал когда-либо вызывать любой скрипт pip somecommand (или pip3) напрямую. Вместо этого гораздо безопаснее явно вызывать исполняемый модуль pip для конкретного интерпретатора c Python, что-то вроде path/to/pythonX.Y -m pip somecommand.

В этом есть много преимуществ, например:

  • Ясно, для какого интерпретатора Python проекты будут pip-инсталлированы (Python 2 или 3, внутри виртуальной среды или нет, и т. д. c.)
  • Для виртуальной среды можно pip-установить (или делать другие действия), не активируя ее: path/to/venv/bin/python -m pip install SomeProject
  • Под Windows это единственное безопасное обновление pip само по себе path\to\venv\Scripts\python.exe -m pip install --upgrade pip

Но да, если все настроено идеально, тогда python3 -m pip install SomeProject и pip3 install SomeProject должны делать то же самое , но существует слишком много случаев, когда возникает проблема с настройкой, и все не работает должным образом, и пользователи запутываются (как показывают многие вопросы об этой топике c на этой платформе).

Рекомендации

0 голосов
/ 21 марта 2020

Это то же самое.

python3 -m pip install вызывает pip как модуль в python, в то время как pip install вызывает pip напрямую.

Единственная причина, по которой вы предпочитаете первое, заключается в том, что для использования второго вам нужно установить pip в ваших переменных среды (для Windows). В более старых версиях python это не делалось автоматически во время установки, скорее, вам приходилось делать это вручную. Вот почему во многих руководствах вы можете увидеть, что они используют первый синтаксис для своих инструкций (потому что он работает всегда, если у вас есть python3 в ваших переменных среды. Для операционных систем Linux / Ma c нет любая разница.

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