wake-up-neo.com

pip oder pip3, um Pakete für Python 3?

Ich habe ein Macbook mit OS X El Captain. Ich denke, dass Python 2.7 Darauf vorinstalliert ist. Allerdings habe ich auch Python 3.5 Installiert. Als ich anfing, Python 3 Zu verwenden, las ich, dass ich Folgendes eingeben sollte, wenn ich ein Paket installieren möchte:

pip3 install some_package

Jedenfalls jetzt, wenn ich es benutze

pip install some_package

Ich habe some_package Für Python 3 Installiert. Ich meine, ich kann es ohne Probleme importieren und verwenden. Wenn ich nur pip3 In Terminal eingebe, erhalte ich außerdem folgende Meldung zur Verwendung:

Usage:   
  pip <command> [options]

das ist die gleiche Nachricht, die ich bekomme, wenn ich nur pip eingebe.

Bedeutet dies, dass in früheren Versionen die Dinge anders waren und nun pip und pip3 Austauschbar verwendet werden können? Wenn ja, und aus Gründen der Argumentation, wie kann ich Pakete für Python 2 Anstelle von Python 3 Installieren?

77
Ammar Alyousfi

Ihr pip ist ein Softlink zu demselben ausführbaren Dateipfad wie pip3. Sie können die folgenden Befehle verwenden, um zu überprüfen, wo Ihre pip und pip3 Wirkliche Wege sind:

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

sie können auch die folgenden Befehle verwenden, um weitere Details zu erfahren:

$ pip show pip
$ pip3 show pip

Wenn wir eine andere Version von Python installiert haben, können wir solche Softlinks zu machen

  • setze den Standardpip auf eine Version.
  • mache verschiedene Links für verschiedene Versionen.

es ist die gleiche Situation über python, python2, python3

Nachfolgend für diejenigen, die sich dafür interessieren, wie es in einem anderen Fall geschieht:

48
CSJ

Wenn Sie python 2.x hatten und dann python3 installiert haben, zeigt Ihr pip auf pip3. Sie können dies überprüfen, indem Sie pip --version Eingeben, was dasselbe wäre wie pip3 --version.

Auf Ihrem System haben Sie jetzt pip, pip2 und pip.

Wenn Sie möchten, können Sie pip so ändern, dass es auf pip2 anstatt auf pip3 zeigt.

19
apadana

Bei der Installation von python3, pip3 wird installiert. Und wenn Sie keine andere python installation (wie python2.7) haben, wird ein Link erstellt, der pip auf pip3.

Also pip ist ein Link zu pip3 wenn keine andere Version von python installiert ist (außer python3). pip verweist im Allgemeinen auf die erste Installation.

12
Ani Menon

Dies ist ein heikles Thema. Wenn Sie am Ende pip aufrufen, wird entweder pip2 oder pip3, je nachdem, wie Sie Ihr System eingerichtet haben.

7
Max Uppenkamp

Ich denke pip, pip2 und pip3 sind keine Softlinks zu demselben Pfad der ausführbaren Datei. Beachten Sie diese Befehle und führt zu meinem Linux-Terminal:

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

Wie Sie sehen, gibt es sie auf verschiedenen Wegen.

pip3 funktioniert immer nur in der Python3-Umgebung, genau wie pip2 in Python2. pip arbeitet in jeder Umgebung, die für den jeweiligen Kontext geeignet ist. Wenn Sie sich beispielsweise in einer Python3-Umgebung befinden, wird pip in der Python3-Umgebung ausgeführt.

4
Mohammad Reza

Wenn Sie Python 2.7 installiert hätten, könnten Sie pip2 und pip2.7, um Pakete speziell für Python 2, wie

pip2 install some_pacakge

oder

pip2.7 install some_package

Und Sie können pip3 oder pip3.5, um pacakges speziell für Python 3 zu installieren.

3
mikeqfu

Zur Illustration:

pip --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)

pip3 --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)

python --version
  Python 3.7.3

which python
  /usr/bin/python

ls -l '/usr/bin/python'
  lrwxrwxrwx 1 root root 7 Mar 26 14:43 /usr/bin/python -> python3

which python3
  /usr/bin/python3

ls -l /usr/bin/python3
  lrwxrwxrwx 1 root root 9 Mar 26 14:43 /usr/bin/python3 -> python3.7

ls -l /usr/bin/python3.7
  -rwxr-xr-x 2 root root 14120 Mar 26 14:43 /usr/bin/python3.7

Daher ist my in meinem Standardsystem python (Python 3.7.3), pipispip3.

2
Victoria Stuart

Unter der Voraussetzung, dass Python 3.6 virtualenv in somepath/venv aktiviert ist, haben die folgenden Aliase die verschiedenen Probleme auf einem macOS Sierra behoben, bei denen pip darauf bestand, auf Apples 2.7 Python zu verweisen.

alias pip='python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'

Dies funktionierte nicht so gut, als ich Sudo pip Ausführen musste, da der Root-Benutzer nichts über meinen Alias ​​oder das virtuelle Env weiß. Daher musste ich einen zusätzlichen Alias ​​hinzufügen, um dies ebenfalls zu handhaben. Es ist ein Hack, aber es funktioniert und ich weiß, was es tut:

alias sudopip='Sudo somepath/venv/bin/python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'

hintergrund:

pip3 gab es nicht um zu starten ( befehl nicht gefunden ) mit und which pip würde zurückgeben / opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip, das Apple Python.

Python 3.6 wurde über Macports installiert.

Nach der Aktivierung von 3.6, mit dem ich arbeiten wollte, würde which pythonsomepath/venv/bin/python zurückgeben

Irgendwie würde pip install Das Richtige tun und mein Virtualenv treffen, aber pip list Würde Python 2.7-Pakete rasseln.

Für Python liegt dies weit unter meinen Erwartungen in Bezug auf Anfängerfreundlichkeit.

0
JL Peyret

Auf meiner Windows-Instanz funktionierte die Installation des kaggle-cli-Pakets mit pip3 - und ich verstehe meine Umgebung nicht vollständig - während pip dies nicht tat. Ich habe in einer Conda-Umgebung gearbeitet und die Umgebungen scheinen sich zu unterscheiden.

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

pip 9.0.1 aus 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 von c:\users\redact\appdata\local\programs\python\python36\lib\site-packages (Python 3.6)

0
P M