Ich benutze CentOS und habe pip auf /usr/local/python-dir/bin/pip installiert. Ich habe einen Link zu /usr/local/bin/pip erstellt. Dann habe ich sudo pip install xxx ausgeführt und einen Fehler wie den folgenden gemeldet:

sudo: pip: command not found

Ich sehe, dass $PATH in Ordnung ist:

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin

Ich kann pip jedoch nur folgendermaßen ausführen:

sudo /usr/local/bin/pip install xxx

Wie kann ich PATH oder etwas anderes konfigurieren? Danke vielmals.

24
zimmer 15 Aug. 2015 im 04:19

5 Antworten

Beste Antwort

Aus Sicherheitsgründen ist sudo nicht auf das in Ihrer Umgebung festgelegte $PATH angewiesen. In /etc/sudoers gibt es eine secure_path -Option, die die PATH angibt, die sudo zum Auffinden von Binärdateien verwendet. Beispielsweise:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

Fügen Sie diesem Pfad einfach /usr/local/bin hinzu oder gewöhnen Sie sich an die Eingabe:

sudo `which pip` install xxx
55
larsks 15 Aug. 2015 im 01:27

Nicht ideal, funktioniert aber. Sie können die Verknüpfung nach der Installation jederzeit aufheben, um die Sicherheit wiederherzustellen.

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

Setzt pip in den Stammpfad. Sie können dann pip als sudo ausführen.

9
Ronan Boiteau 13 Juni 2019 im 12:36

Pip kann mit dem folgenden Befehl installiert werden:

yum -y install python-pip

Wenn Sie Probleme mit dem GPG-Schlüssel haben (keine solche Datei oder kein solches Verzeichnis), lösen Sie den folgenden Befehl aus:

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

Versuchen Sie dann, pip zu installieren

3
will-hart 11 Juli 2017 im 09:17

Sie können sudo die Option -E hinzufügen, um die Umgebungsvariablen Ihres Benutzerkontos zu verwenden

$ sudo -E pip installiere xyz

-1
crowdedComputeeer 15 Aug. 2015 im 01:35

Versuchen Sie sudo bash -c 'echo $PATH', um festzustellen, wo sudo nach Befehlen sucht. Sie können dann pip mit einem dieser Verzeichnisse verknüpfen.

4
Mark Reed 15 Aug. 2015 im 01:43