Sudo: pip: команда не найдена в CentOS
Я использую CentOS, и я установил pip на /usr/local/python-dir/bin/pip
. Я сделал ссылку на /usr/local/bin/pip
. Затем я выполнил sudo pip install xxx
, он сообщил об ошибке, подобной этой:
sudo: pip: command not found
Я вижу, что $PATH
в порядке:
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
Тем не менее, я могу выполнить этот вызов только так:
sudo /usr/local/bin/pip install xxx
Как настроить PATH или что-то еще? Большое спасибо.
Ответы
Ответ 1
Из соображений безопасности sudo
не полагается на $PATH
, установленном в вашей среде. В /etc/sudoers
есть параметр secure_path
, который указывает PATH
, который sudo
будет использовать для поиска двоичных файлов. Например:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Просто добавьте /usr/local/bin
в этот PATH или привыкнуть к вводу:
sudo `which pip` install xxx
Ответ 2
Не идеально, но работает. Вы всегда можете отсоединить его после установки, чтобы восстановить безопасность.
sudo ln -s /usr/local/bin/pip /bin/pip
Помещает пип в корневую корзину. Затем вы можете запустить pip как sudo.
Ответ 3
Попробуйте sudo bash -c 'echo $PATH'
, чтобы увидеть, где sudo
ищет команды; вы можете затем символизировать pip
в один из этих каталогов.
Ответ 4
pip может быть установлен с помощью следующей команды:
yum -y install python-pip
Если вы столкнулись с какой-либо проблемой с GPG-ключом (нет такого файла или каталога), затем выполните команду ниже:
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
затем попробуйте установить pip
Ответ 5
Вы можете добавить параметр -E в sudo для использования переменных окружения вашей учетной записи пользователя
$sudo -E pip install xyz