Pip и sudo не находятся на одном и том же пути на моей машине, поэтому, когда (в основном все время) мне нужно выполнить обе команды, например так:

sudo pip install xxx

Я получил:

sudo: pip: command not found

pip загружает пакеты, но так как доступ запрещен в конце установки, это приводит к сбою.

Делая pip -V, (which pip ничего не возвращает) я узнаю, где находится пункт:

pip 1.5.4 from /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)

И делая sudo bash -c 'echo $PATH',

Я получил:

/usr/bin:~/bin:/bin:/usr/local/bin:/usr/local/sbin:/Applications/Zed.app/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin

Я попытался вставить символ pip в каталоги sudo, вот так:

$ sudo ln -s /usr/local/bin/pip /usr/bin/pip, безрезультатно.

Как мне поставить sudo на тот же path? Пожалуйста, помогите, я здесь потерян.

5
8-Bit Borges 8 Янв 2017 в 05:52

7 ответов

Лучший ответ

Согласно этой ссылке: https://unix.stackexchange.com/a/83194, вы сможете выполнить эту команду как это:

sudo env 'PATH=$PATH:/usr/local/bin' pip ...
6
Community 13 Апр 2017 в 12:36

Вы пытались просто сделать sudo su и посмотреть, работает ли это?

0
Furrowed 8 Янв 2017 в 02:54

Кажется, что pip не установлен на системном уровне. Вы можете установить pip на системном уровне, запустив sudo apt-get install python-pip из терминала. После этого вы можете обновить pip, запустив sudo pip install --upgrade pip.

1
toanant 19 Янв 2017 в 15:10

Ты пытался

sudo -H <your_commands>

?

Это должно сохранить вашу пользовательскую среду.

-1
Martin Krämer 22 Янв 2017 в 22:50

Где бы ни жил Пип, это не будет у вас на пути, когда вы будете судо. Так что попробуйте это:

sudo /usr/local/bin/pip 

Если это не сработает, то скажите which pip, чтобы узнать, где живет пункт, и действуйте соответствующим образом.

0
Alex L 8 Янв 2017 в 03:09

Если вы используете sudo env "PATH=$PATH" pip install xxx, вы сможете запустить правильный pip исполняемый файл.

0
julesjulian 19 Янв 2017 в 15:21

После установки пипа я сделал

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

И теперь root может использовать pip без каких-либо модификаций PATH. У меня были проблемы с внесением изменений в PATH для учетной записи root.

4
Jeff Tsay 20 Окт 2017 в 23:53