2015-08-15 122 views
19

我使用CentOS和我安裝的pip到/usr/local/python-dir/bin/pip。我建立了一個鏈接/usr/local/bin/pip。然後我執行sudo pip install xxx,該公司報告這樣的錯誤:sudo:pip:在CentOS中找不到的命令

sudo: pip: command not found 

我看到$PATH都是正確的:

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

但是,我只能執行PIP這樣:

sudo /usr/local/bin/pip install xxx 

我如何配置PATH或其他東西?非常感謝。

+0

如果您嘗試在沒有'sudo'的情況下運行它,鏈接是否可以正常工作?當然,你可能沒有安裝權限,但它會嘗試以這種方式運行'pip'嗎? –

回答

42

出於安全原因,sudo不依賴於在您的環境中設置的$PATH/etc/sudoers中有一個secure_path選項,它指定PATHsudo將用於查找二進制文件。例如:

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

只需添加/usr/local/bin這個路徑,或習慣打字:

sudo `which pip` install xxx 
+0

非常感謝.....這是我一直在尋找的東西! – Deca

+1

我相信你必須用visudo編輯文件: sudo visudo;點擊插入鍵,向下滾動並進行更改,按esc鍵,然後':qw'保存文件並退出。這對我有效。 – eezis

+0

我同意@Paul Kenjora的回答,'sudo ln -s/usr/local/bin/pip/usr/bin/pip' – Pramit

-1

可以-E選項添加到sudo來使用用戶帳戶的環境變量

$ sudo -E pip安裝xyz

+1

這不適合我。 – zimmer

+0

在Ubuntu上無法使用。 –

3

嘗試sudo bash -c 'echo $PATH'查看sudo正在尋找命令;然後你可以將pip符號鏈接到這些目錄中的一個。

+0

這是解決我的問題的另一種方法,我添加/ usr/local/bin到secure_path,它也可以,謝謝 – zimmer

+7

'$ sudo ln -s/usr/local/bin/pip/usr/bin/pip'是我實現它的方式。 – MikeiLL

+0

@MikeiLL,謝謝。對於它的價值,我在我的機器上找到了'usr/local/bin/pip3.4'。 – progfan

3

不理想,但有效。您可以在安裝後始終取消鏈接以恢復安全性。

須藤LN -s的/ usr/local/bin中/ PIP /倉/ PIP

提出PIP在根路徑箱。然後你可以像sudo一樣運行pip。

0

PIP可以用下面的命令來安裝:

yum -y install python-pip

如果您遇到任何問題,GPG鍵(沒有這樣的文件或目錄),然後觸發以下命令:

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

然後嘗試安裝pip