2015-08-15 5 views
19

Ich benutze CentOS und ich installiert pip zu /usr/local/python-dir/bin/pip. Ich habe einen Link zu /usr/local/bin/pip. Dann sudo pip install xxx ich ausgeführt, es hat einen Fehler gemeldet wie folgt aus:sudo: pip: Befehl nicht in CentOS

sudo: pip: command not found 

ich $PATH sehen, ist alles in Ordnung:

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

Allerdings habe ich nur pip auf diese Weise ausführen kann:

sudo /usr/local/bin/pip install xxx 

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

+0

Funktioniert der Link, wenn Sie versuchen, es ohne 'sudo' auszuführen? Zugegeben, Sie werden wahrscheinlich keine Berechtigung zur Installation haben, aber versucht es, 'pip' auf diese Weise auszuführen? –

Antwort

42

Aus Sicherheitsgründen sudo beruht nicht auf dem $PATH Satz in Ihrer Umgebung. Es gibt eine secure_path Option in /etc/sudoers, die den PATH angibt, den sudo für das Suchen von Binärdateien verwenden wird. Zum Beispiel:

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

Fügen Sie einfach /usr/local/bin zu diesem Pfad oder Typisierung gewöhnen:

sudo `which pip` install xxx 
+0

Vielen Dank ..... Dies ist, was ich überall gesucht habe! – Deca

+1

Ich glaube, Sie mussten die Datei mit visudo bearbeiten: sudo visudo; Drücken Sie die Einfügetaste, scrollen Sie nach unten und nehmen Sie die Änderung vor, drücken Sie die Esc-Taste und dann ': qw', um die Datei zu speichern und zu beenden. Das hat für mich funktioniert. – eezis

+0

ich stimme mehr mit @Paul Antwort von Kenjora, 'sudo ln -s/usr/lokal/bin/pip/usr/bin/pip' – Pramit

-1

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

$ sudo -E pip installieren xyz

+1

das kann nicht für mich arbeiten. – zimmer

+0

Funktionierte nicht auf Ubuntu. –

3

sudo bash -c 'echo $PATH' Versuchen Sie, um zu sehen, wo sudo für Befehle sucht; Sie können dann pip in eines dieser Verzeichnisse symbolisieren.

+0

Dies ist eine andere Möglichkeit, mein Problem zu lösen, ich füge/usr/local/bin zu secure_path hinzu, es funktioniert auch, danke – zimmer

+7

'$ sudo ln -s/usr/local/bin/pip/usr/bin/pip' ist das So habe ich es geschafft. – MikeiLL

+0

@MikeiLL, danke.Für was es wert ist, fand ich stattdessen 'usr/local/bin/pip3.4' auf meinem Rechner. – progfan

3

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

Sudo ln -s/usr/local/bin/Pip/bin/pip

Versetzt pip im Wurzelpfad bin. Sie können dann Pip als Sudo ausführen.

0

pip kann mit folgendem Befehl installiert werden:

yum -y install python-pip

Wenn Ihr Blick auf irgendein Problem mit GPG-Schlüssel (keine solchen Datei oder das Verzeichnis), dann unter Befehl auslösen:

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

dann versuchen Sie zu installieren pip

Verwandte Themen