pip или pip3 для установки пакетов для Python 3?

15

У меня есть Macbook с OS X El Captain. Я думаю, что Python 2.7 поставляется с предустановленной на нем. Однако я также установил Python 3.5. Когда я начал использовать Python 3, я прочитал, что если я хочу установить пакет, я должен ввести:

pip3 install some_package

В любом случае, теперь, когда я использую

pip install some_package

Я установил some_package для Python 3. Я имею в виду, что я могу импортировать его и использовать без проблем. Более того, когда я набираю только pip3 в Terminal, я получил это сообщение об использовании:

Usage:   
  pip <command> [options]

которое является тем же сообщением, которое я получаю, когда я печатаю только pip.

Означает ли это, что в предыдущих версиях все было по-другому, и теперь pip и pip3 можно использовать взаимозаменяемо? Если да, и для аргументации, как я могу установить пакеты для Python 2 вместо Python 3?

Теги:
python-3.x
pip
macos
python-2.7

7 ответов

13
Лучший ответ

Ваши pip и pip3 являются мягкими ссылками на один и тот же путь исполняемого файла. вы можете использовать команды ниже, чтобы проверить, где находятся реальные пути pip и pip3:

$ ls -l `which pip`
$ ls -l `which pip3`

вы также можете использовать нижеприведенные команды для получения более подробной информации:

$ pip show pip
$ pip3 show pip

Когда мы установили другую версию python, мы можем сделать такие ссылки на

  • установите для параметра по умолчанию значение для некоторой версии.
  • создавать разные ссылки для разных версий.

это та же ситуация около python, python2, python3

  • 1
    Я думаю, что это неправильно. Мой pip3 также называет себя просто pip в своем выводе справки, тем не менее, обычный pip устанавливает пакеты Python 2 в мою систему. Я думаю, что stackoverflow.com/a/40832677/188108 правильно, по крайней мере, это согласуется с моими наблюдениями.
  • 0
    это меняет то, в какой среде и как вы устанавливаете python, этот ответ должен дать представление о том, как работает pip, и ответить на ситуацию спрашивающего. если это не то же самое в вашей системе, вы все равно можете использовать тот же способ, чтобы выяснить, почему. не значит, что это неправильный ответ.
Показать ещё 7 комментариев
5

При установке python3 устанавливается pip3. И если у вас нет другой установки python (например, python2.7), тогда создается ссылка, которая указывает pip на pip3.

So pip является ссылкой на pip3, если нет другой версии установленного python (кроме python3). pip обычно указывает на первую установку.

4

Если у вас есть python 2.x, а затем установлен python3, ваш пип будет указывать на pip3. вы можете проверить это, набрав pip --version, который будет таким же, как pip3 --version.

В вашей системе теперь есть pip, pip2 и pip3.

Если вы хотите, вы можете сменить pip, чтобы указать на pip2 вместо pip3.

  • 0
    как ты это изменишь
  • 2
    @ahnbizcad Самый простой способ - определить псевдоним так: alias pip = "pip3"
Показать ещё 11 комментариев
4

Это сложный вопрос. В конце, если вы вызываете pip, он будет вызывать либо pip2, либо pip3, в зависимости от того, как вы настроили свою систему.

1

Если вы установили Python 2.7, я думаю, вы могли бы использовать pip2 и pip2.7 для установки пакетов специально для Python 2, например

pip2 install some_pacakge

или

pip2.7 install some_package

И вы можете использовать pip3 или pip3.5 для установки pacakges специально для Python 3.

0

В моем экземпляре Windows - и я не полностью понимаю мою среду - с помощью pip3 для установки пакета kaggle-cli работал, а pip - нет. Я работал в среде conda, и среда выглядела иначе.

(fastai) C:\Users\redact\Downloads\fast.ai\deeplearning1\nbs > pip --version

pip 9.0.1 из C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages (python 3.6)

(fastai) C:\Users\redact\Downloads\fast.ai\deeplearning1\nbs > pip3 --version

pip 9.0.1 из c:\users\redact\appdata\local\programs\python\python36\lib\site-packages (python 3.6)

0

Я думаю, что pip, pip2 и pip3 не являются мягкими ссылками на один и тот же путь исполняемого файла. Обратите внимание на эти команды и результаты в моем терминале linux:

mrz@mrz-pc ~ $ ls -l `which pip`
-rwxr-xr-x 1 root root 292 Nov 10  2016 /usr/bin/pip
mrz@mrz-pc ~ $ ls -l `which pip2`
-rwxr-xr-x 1 root root 283 Nov 10  2016 /usr/bin/pip2
mrz@mrz-pc ~ $ ls -l `which pip3`
-rwxr-xr-x 1 root root 293 Nov 10  2016 /usr/bin/pip3
mrz@mrz-pc ~ $ pip -V
pip 9.0.1 from /home/mrz/.local/lib/python2.7/site-packages (python 2.7)
mrz@mrz-pc ~ $ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
mrz@mrz-pc ~ $ pip3 -V
pip 9.0.1 from /home/mrz/.local/lib/python3.5/site-packages (python 3.5)

Как вы видите, они существуют в разных путях.

pip3 всегда работает только в среде Python3, так как pip2 работает с Python2. pip работает в зависимости от того, какая среда подходит для контекста. Например, если вы находитесь в Python3 venv, pip будет работать в среде Python3.

  • 0
    Я бы сказал, что вводить в заблуждение то, что pip связан с любой средой, подходящей для контекста, немного вводит в заблуждение. В случае с venv исполняемый файл pip специфичен для venv, а не для системы. Если вы не установили несколько версий Python в одном и том же Venv, я не вижу этой проблемы, возникающей там. Когда не используется venv, используемая версия pip иногда не интуитивна и зависит от конфигурации вашей системы (часто это определяется тем, какая версия python была установлена первой, как говорили другие). Но у Пипа нет интеллекта, который он использует для динамического выбора версии

Ещё вопросы

Сообщество Overcoder
Наверх
Меню