pip3 против python3 -m pip против python3 .7 -m pip - PullRequest
0 голосов
/ 22 марта 2020

В моей системе (Linux Mint) у меня есть ptyhon2, python3.6 и python3.7.

muyustan@mint:/usr/lib$ pip -V

Command 'pip' not found, but can be installed with:

sudo apt install python-pip

muyustan@mint:/usr/lib$ pip3 -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
muyustan@mint:/usr/lib$ python3 -m pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
muyustan@mint:/usr/lib$ python3.7 -m pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.7)
muyustan@mint:/usr/lib$ 

из них, я понимаю, что pip зарезервировано для python2 и он не установлен. Нет проблем, так как меня не волнует python2.

Похоже, есть два разных pip с python3.6 и python3.7 соответственно.

Однако, когда я осмотрите папку /usr/lib/python3/dist-packages, я вижу, что там не более одного pip.

muyustan@mint:/usr/lib$ ll /usr/lib/python3/dist-packages | grep "pip"
drwxr-xr-x 11 root root   4096 Mar 21 15:24 pip/
drwxr-xr-x  2 root root   4096 Mar 21 15:24 pip-9.0.1.egg-info/

Я довольно озадачен по поводу pip3, python3 -m pip и python3.7 -m pip.

Я предполагаю, что python3 относится к python3.6.

Итак, мои вопросы:

  1. У меня есть 3 разных pip s?
  2. Какие мне следует использовать?
  3. Какая разница в pip между python3.6 и python3.7?

1 Ответ

4 голосов
/ 23 марта 2020

Для этой топи c лучший справочник, который я знаю в настоящее время, находится в статье Бретта Кэннона" Почему вы должны использовать python -m pip" .

Вкратце:

  • не устанавливайте pip (когда-либо)
  • вместо создания виртуальных сред, они поставляются с pip предустановлен, используйте его для установки Python проектов исключительно в этой виртуальной среде, также этот pip можно безопасно обновить
  • , не используйте pip, * Сценарий 1024 *, pip3.7 напрямую (всегда, если только вы не уверены на 100%, что он связан с правильным интерпретатором Python)
  • вместо этого используйте исполняемый модуль pip *
    • path/to/venv/bin/python -m pip somecommand ...
    • path\to\venv\Scripts\python.exe -m pip somecommand ...
    • (это также справедливо для других инструментов: path/to/venv/bin/python -m pytest)
    • (тем более в таких файлах, как bash сценарии, tox конфигурации, документация и т. д. c; ярлыки, такие как pip, предназначены только для интерактивной командной строки)
    • (используя expl icit path дополнительно позволяет использовать pip или другие подобные инструменты без активации виртуальной среды)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...