Sudo pip установить VS pip install --user

Не помню, где я это читал, но где-то здесь или в комментариях учебника, которое я следил, человек сказал:

'Никогда не используйте sudo pip install; вы можете перезаписать важные вещи, не зная об этом. Вместо этого используйте pip install -user! '

Я вижу множество ссылок на sudo pip install повсюду, хотя, так и этот человек знал, о чем они говорили, и я должен избегать этого, или...?

Ответ 1

sudo pip install, вероятно, означает, что вы хотите установить пакет по всей системе. Для некоторых пакетов, таких как virtualenvwrapper, это может быть полезно, но кроме того, я бы не стал устанавливать общесистемные пакеты и создавать виртуальные файлы для каждого приложения и устанавливать pip на этот virtualenv (что можно сделать без sudo).

Ответ 2

$ sudo pip install 

Устанавливает пакет глобально в вашей установке python, то есть для всех пользователей.

$ pip install --user

Устанавливается в локальный каталог пользователя, т.е. ~/.local/lib/python - только вы.

Пример:

$ sudo pip install jupyter
$ jupyter notebook

Запустит jupyter, откройте веб-браузер, позволит вам работать с ноутбуками.

$ pip install --user jupyter
$ jupyter notebook

Ничего не сделает, пока ваш локальный каталог не будет добавлен в ваш PATH.

В pypi недавно появился вредоносный код. Никогда не используйте sudo для установки с помощью pip. Это то же самое, что запуск вируса с правами root. Либо добавьте свою локальную папку в свой PATH, либо используйте virtualenv.