И для более сдержанного ответа:
- Вы действительно всегда должны это делать
sudo apt-get install ...
, так как инструмент был разработан для работы.
- Использование
sudo [-H]
с pip install
возможно и необязательно, в зависимости от того, что именно вы хотите сделать (и, следовательно, «противоречие»).
Один из девизов языка Python является «Там должно быть одно-- и предпочтительно только один --obvious способ сделать это.» И, как и большинство девизов, он с сардоническим ликованием ломается, казалось бы, при любой возможности. (Вот почему, я думаю, существуют девизы.) К сожалению, по моему наиболее скромному мнению, экосистема Python состоит из множества противоречивых «жестких и быстрых» правил, которые никогда не нарушаются ... за исключением случаев, когда «yada yada yada» (дьявол, детали и т. д.). Почти во всех случаях это связано с исторической эволюцией языка и инструментов (и тем, кто хочет / нуждается в уроке истории, когда они просто хотят продолжить свою работу) - но также может быть связано с различиями в Mac / Win / * Платформы Nix (например, Unix / Linux имеет похожий менталитет,принять всю эту «сломанную практику» и «по своей сути неправильно» груз-культистов с огромной щепоткой соли. Некоторые действительно имеют в виду хорошо. (Другие просто, ну, подлые.)
Прежде всего, вместо базовых «установок для каждого пользователя», вы почти всегда предпочитаете virtualenv, потому что на самом деле это то, что вам в конечном итоге понадобится. Так что вы можете начать с этого сейчас. Как именно это делается, именно «зависит» (см. Девиз Python выше). Если вы используете Conda (в основном для Mac и Windows), он будет настроен с использованием Conda . Если вы используете «чистый» Python [sic] , это зависит от того, какая версия и какая у вас версия Python, но virtualenvwrapper довольно удобен.
Во-вторых, в качестве контрпримера к правилу «никогда не судо», вы можете предпочесть sudo -H pip install -U numpy
, что совершенно нормально, даже выгодно, так как позволяет избежать загрузки / переустановки / обслуживания больших библиотек, где вы хотите только / нужна одна версия, в каждом virtualenv отдельно. Большие, популярные фреймворки, такие как scikit-learn, NumPy, matplotlib, SciPy, pandas и т. Д., Могут быть установлены один раз и готовы для повторного использования в различных средах . Кроме того, ваш местный дружественный системный администратор может установить их для каждого пользователя в системе - и, очевидно, они будут делать это sudo
также, например, для более сложных установок, таких как TensorFlow.
И, наконец, если вы устанавливаете какую-то случайную стороннюю библиотеку, которая делает то-то и то-то (API Twitter, манипулирование текстом, форматирование кода и т. Д.), То я полностью согласен - не устанавливайте ее как root с помощью sudo. Конечно, установите его в качестве текущего пользователя. Но помните, в вашей учетной записи есть все ваши действительно важные вещи .
sudo pip install
по своей сути неверны. - от stackoverflow.com/a/33004920/95735