Wie ändere ich den Befehl pip3 in pip?

74

Ich habe deinstalliert pipund pip3stattdessen installiert . Jetzt möchte ich nur noch pip3tippen pip. Der Grund dafür ist, dass ich pipnur zum Tippen verwendet werde und jeder Leitfaden den pipBefehl verwendet. Jedes Mal, wenn ich Befehle kopieren und einfügen möchte, muss ich ändern, pipum pip3welche Zeit verschwendet wird. Wenn ich tippe, habe pipich einen Fehler, pip: command not foundwas bedeutet, dass der pipBefehl nicht ausgeführt wird. Ist es möglich, pipPunkte zu machen pip3?

Ambitionen
quelle
Bitte bedenken Sie meine Antwort, die meiner Meinung nach angemessen ist als ein Alias
noraj
Abgesehen davon würde ich für diesen speziellen Fall die Verwendung in Betracht ziehen virtualenv.
cz
aliasoder symlinkist eine Option, aber ich denke, es update-alternativeswäre besser, mitzumachen. Seitdem möchten Sie Ihre Datei nicht immer wieder aktualisieren.bashrc oder eine Reihe von Symlinks für ähnliche Fälle wie for python3und seine verschiedenen Versionen erstellen .
aspiring1

Antworten:

86

Sie können Ihrem ~ / .bashrc entweder einen Alias ​​hinzufügen

alias pip=pip3

oder fügen Sie Ihrem $ PATH-Symlink den Namen pip hinzu, der auf pip3 binary zeigt

(Übrigens, obwohl dies in Bezug auf Pip keine wirklich pythonbezogene Frage ist, sollten Sie es erneut markieren.)

Update: Juli 2020

Wenn sich unter macOS kein ~ / .bashrc in Ihrem Home-Verzeichnis befindet, geben Sie Folgendes ein

alias pip=pip3

in Ihrer ~ / .zprofile-Datei hat den gleichen Effekt,

MacHala
quelle
Wie finde ich ~ / .bashrc? Ich habe meinen Beitrag aufgrund Ihrer Empfehlung erneut markiert.
Ambitionen
@Ambitions betrifft dies eigentlich nur Linux / * nix (einschließlich Mac). Wenn Sie also Windows verwenden, kann ich Ihnen nicht helfen. In Unix-basierten Systemen steht ~ für Home-Verzeichnis (oder wenn Sie BASH nicht verwenden, kann es sich um eine andere Datei wie .zshrc handeln)
MacHala
Dies ist der Trick für mich in Ubuntu 18.04, da die .bashrc die Existenz von .bash_aliases überprüft: alias pip=pip3 >> ~/.bash_aliases
TeddybearCrisis
alias pip = pip3 >> ~ / .bash_aliases hat für mich gearbeitet, danke TeddybearCrisis
user3424037
@Ambitions Gehen Sie für MacOS zu Macintosh HD / Users / yourname / directory. Das Einfügen dieses Alias ​​in ein beliebiges .bashrc- oder .bash_profile würde funktionieren.
Jimmy Shaw
78

Anstatt manuell einen eigenen Alias ​​in Bash zu erstellen und zu hoffen, dass dies mit nichts in Konflikt steht, sollten die meisten Paketmanager es Ihnen ermöglichen, die Version zu registrieren, die Sie verwenden möchten, während Sie Abhängigkeiten beibehalten.

Zum Beispiel unter Linux:

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

Oder auf Mac (MacPorts):

port select --set pip pip3
cz
quelle
Auswahl von 'pip3' für 'pip' fehlgeschlagen: Die angegebene Gruppe 'pip' existiert nicht.
user3424037
@ user3424037 Möglicherweise handelt es sich um eine ältere Version von MacPorts (die dies nicht unterstützte - siehe stackoverflow.com/questions/12557114/macports-and-the-bash-path ), oder Pip wurde mit einer anderen Methode als MacPorts installiert.
cz
1
@ndemarco Soweit mir bekannt ist, wird nur ein Link erstellt und dieser Link dann nachverfolgt, um sicherzustellen, dass er aktualisiert wird, wenn die Anwendung aktualisiert wird, entfernt wird, wenn die Anwendung entfernt wird, und nicht mit einer anderen Anwendung in Konflikt steht. Die technischen Details dieses Prozesses sind mir nicht sicher und hängen wahrscheinlich vom Paketmanager ab. Ich habe festgestellt, dass insbesondere Macports sehr gut darin ist, verschiedene Versionen von Python nebeneinander zu handhaben, die Binärdateien getrennt zu halten, dem Benutzer jedoch hilfreich zu sagen, dass er den --setBefehl (erneut) ausführen soll, wenn er die Standardversion ändern möchte wird eingesetzt.
cz
1
Ich kann bestätigen, dass die Linux-Anweisung funktioniert. Beste Antwort. Warum die .bashrc mit einem Alias ​​ändern, wie es die akzeptierte Antwort nahelegt, scheint hier professioneller zu sein.
questionto42
22

Lösung 1

Überprüfen Sie, auf welche Version pip zeigt

pip --version
pip 18.0 from /usr/lib/python2.7/site-packages/pip (python 2.7)

Wenn Sie auf pipzeigen pip2, suchen Sie, wo sich die Pip "binär" befindet.

which pip
/usr/bin/pip

Dies ist ein einfaches Python-Skript:

cat /usr/bin/pip
#!/usr/bin/python2

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Also ändere einfach den Schebang von #!/usr/bin/python2auf #!/usr/bin/python3.

Jetzt pipzeigt auf pip3.

pip --version         
pip 18.0 from /usr/lib/python3.6/site-packages/pip (python 3.6)

Lösung 2

Entfernen Sie /usr/bin/pipmake make stattdessen einen symbolischen Link von der gewünschten Pip-Version zu dieser.

sudo rm /usr/bin/pip
sudo ln -s /usr/bin/pip3.6 /usr/bin/pip
noraj
quelle
8

Sie können pip für pip3 schreiben, nachdem Sie die bashrc-Datei im Home-Verzeichnis geändert haben.

In mac -

Bashrc-Datei öffnen -

vim ~/.bashrc

Fügen Sie diese Zeile am Ende der Datei hinzu -

alias pip="pip3"

Schließen Sie die Datei. Vergessen Sie nicht, diese Datei im Terminal von zu beziehen

source ~/.bashrc

Du bist startklar. Wann immer Sie pip in einem Befehl verwenden. es wird als pip3 interpretiert

Sie können dies überprüfen, indem Sie den Befehl ausführen -

pip --version
Mayank Jindal
quelle
Dies wiederholt die Kernlösung der akzeptierten Antwort von MacHala. Ein bisschen Blick auf die Veröffentlichungstermine: Obwohl diese Antwort ein bisschen mehr erklärt, was damit zu tun ist, sehe ich hier 2 Jahre nach der akzeptierten Antwort keine positive Bewertung für eine Antwort. Ein Kommentar / eine Bearbeitung hätte es geschafft. Abgesehen davon. Die wahrscheinlich beste Antwort ist die von @cz, die auch vor dieser war.
questionto42
8

Da Sie deinstalliert haben pip, geht diese Lösung davon aus, dass Sie nur verwenden werden pip3.

  1. Öffnen Sie Ihr Terminal.

  2. Erstellen Sie einen einfachen Link. Um diesen Typ zu tun:

    sudo ln -s /usr/bin/pip3 /usr/bin/pip

Wenn Sie jetzt tippen pip, wird es aufgerufen pip3.

Überprüfen Sie durch Eingabe, ob es funktioniert hat pip --version

pip --version   
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

Du bist fertig!

über
quelle
Es hat bei mir funktioniert, außerdem muss ich zuerst "rm -rf / usr / local / bin / pip".
Tsing
3

Ich glaube, so etwas sollte man nicht tun. Eigentlich würde ich argumentieren, dass es noch besser pipist pip3, die Skripte usw. niemals zu verwenden. Stattdessen sollte man immer die explizitere und sicherere Art bevorzugen, das ausführbare Modul von pip für einen bestimmten Python-Interpreter zu verwenden:

path/to/pythonX.Y -m pip somecommand

Verweise:

Sinoroc
quelle
2

Dies kann durch einfaches Erstellen eines Alias ​​für den Befehl erfolgen. Um einen Alias ​​zu erstellen, geben Sie einfach ein

$alias new_command="existing_command"
In Ihrem Fall,
$alias pip="pip3"

Obwohl dies nicht dauerhaft ist. OT machen Sie es dauerhaft bearbeiten Sie Ihre bashrc-Datei und
$ vim ~/.bashrc
an das Ende der Zeile anhängen. $alias pip="pip3"

Saty Anand
quelle
2

Pip ist in / usr / bin / installiert. Wenn Sie überhaupt kein Pip haben, würde ich empfehlen, nur Pip3 zu installieren. Stellen Sie sicher, dass Sie keine ältere Version benötigen.

Sie können die verfügbaren Pip-Versionen mit dem folgenden Befehl überprüfen.

ls / usr / bin / pip *

Wenn Sie mehrere Pip haben, müssen Sie Ihre Pip-Versionen priorisieren. Ich hatte nur pip3, also füge ich es der ersten Priorität hinzu. Sie können den folgenden Befehl verwenden und es ist fertig.

sudo update-alternatives --install / usr / bin / pip pip / usr / bin / pip3 1

Sie erhalten folgende Ausgabe:

Update-Alternativen: Verwenden von / usr / bin / pip3, um / usr / bin / pip (pip) im Auto-Modus bereitzustellen

Jetzt testen:

pip --version

Sie erhalten: pip 18.1 aus / usr / lib / python3 / dist-packages / pip (Python 3.7)

Wenn Sie eine andere Version für Python2.7 haben, können Sie denselben Aktualisierungsbefehl verwenden und die letzte Ziffer 1 in 2 ändern. Dadurch wird die zweite Priorität festgelegt.

Parth Parekh
quelle
-3

Kopieren Sie die pip3-Datei und benennen Sie sie in pip um:

sudo cp /usr/bin/pip3 /usr/bin/pip
pip --version 

und

pip3 --version 

Funktioniert jetzt.

Yo nein ich llamo javier
quelle