У меня есть 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
?
Ваши pip
и pip3
являются мягкими ссылками на один и тот же путь исполняемого файла.
вы можете использовать команды ниже, чтобы проверить, где находятся реальные пути pip
и pip3
:
$ ls -l `which pip`
$ ls -l `which pip3`
вы также можете использовать нижеприведенные команды для получения более подробной информации:
$ pip show pip
$ pip3 show pip
Когда мы установили другую версию python, мы можем сделать такие ссылки на
это та же ситуация около python
, python2
, python3
При установке python3
устанавливается pip3
. И если у вас нет другой установки python (например, python2.7), тогда создается ссылка, которая указывает pip
на pip3
.
So pip
является ссылкой на pip3
, если нет другой версии установленного python (кроме python3).
pip
обычно указывает на первую установку.
Если у вас есть python 2.x, а затем установлен python3, ваш пип будет указывать на pip3.
вы можете проверить это, набрав pip --version
, который будет таким же, как pip3 --version
.
В вашей системе теперь есть pip, pip2 и pip3.
Если вы хотите, вы можете сменить pip, чтобы указать на pip2 вместо pip3.
Это сложный вопрос. В конце, если вы вызываете pip
, он будет вызывать либо pip2
, либо pip3
, в зависимости от того, как вы настроили свою систему.
Если вы установили Python 2.7, я думаю, вы могли бы использовать pip2
и pip2.7
для установки пакетов специально для Python 2, например
pip2 install some_pacakge
или
pip2.7 install some_package
И вы можете использовать pip3
или pip3.5
для установки pacakges специально для Python 3.
В моем экземпляре 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)
Я думаю, что 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.