Y para una respuesta más moderada:
- De hecho, siempre tiene que hacerlo
sudo apt-get install ...
, así es como la herramienta fue diseñada para funcionar.
- Usar
sudo [-H]
con pip install
es posible y opcional, dependiendo de qué es exactamente lo que quiere hacer (y por lo tanto, "controversia").
Uno de los lemas de Python es "Debe haber una, y preferiblemente solo una, forma obvia de hacerlo". Y como la mayoría de los lemas, está roto con alegría sardónica aparentemente en cada oportunidad posible. (Por eso existen los lemas, supongo). Desafortunadamente, en mi opinión más humilde, el ecosistema de Python consta de muchas reglas conflictivas "duras y rápidas", que nunca se romperán ... excepto cuando "yada yada yada" (diablo, detalles, etc.) En casi todos los casos, esto se debe a la evolución histórica del lenguaje y las herramientas (y quién quiere / necesita una lección de historia cuando solo quieren continuar con su trabajo), pero también puede deberse a diferencias en Mac / Win / * Plataformas Nix (por ejemplo, Unix / Linux tiene una mentalidad similar,tome todas estas "prácticas rotas" y cultistas de carga "inherentemente equivocados" con una gran pizca de sal. Algunos realmente tienen buenas intenciones. (Otros son justos, bueno, malos).
En primer lugar, en lugar de las "instalaciones por usuario" básicas, casi siempre preferirá un virtualenv, porque realmente, eso es probablemente lo que terminará necesitando. Así que bien podrías comenzar con esto ahora. Cómo se hace esto, exactamente, "depende" (ver el lema de Python, arriba). Si usa Conda (principalmente para Mac y Windows), se configurará con Conda . Si usa Python "puro" [sic] , depende de qué versión y qué utilidades de Python tenga, pero virtualenvwrapper es bastante útil.
En segundo lugar, solo como un contraejemplo a la regla de "nunca sudo", puede preferirlo sudo -H pip install -U numpy
, lo cual está perfectamente bien, incluso es ventajoso, ya que puede permitir que uno evite descargar / reinstalar / mantener grandes bibliotecas, donde solo desea / necesita una versión, en cada virtualenv por separado. Los marcos grandes y populares como scikit-learn, NumPy, matplotlib, SciPy, pandas, etc., pueden instalarse una vez, hacerse y reutilizarse en todos los entornos . Además, su administrador de sistemas amigable local podría instalarlos para cada usuario en un sistema, y obviamente lo harían sudo
también, por ejemplo, para instalaciones más complicadas, como TensorFlow.
Y, por último, si está instalando una biblioteca aleatoria de terceros que hace tal y tal cosa (API de Twitter, mezcla de texto, formato de código, etc.), estoy totalmente de acuerdo: no la instale como root a través de sudo. Claro, instálalo como tu usuario actual. Pero solo recuerde, su cuenta de usuario tiene todas sus cosas realmente importantes .
sudo pip install
son inherentemente incorrectas. - de stackoverflow.com/a/33004920/95735