Et pour une réponse plus tempérée :
- En effet, vous devez toujours
sudo apt-get install ...
c'est ainsi que l'outil a été conçu pour fonctionner.
- Utilisation de
sudo [-H]
con pip install
est à la fois possible et facultative, en fonction de ce que vous voulez faire exactement (et donc, "controverser").
Un des Les devises de Python est "Il devrait y avoir un - et de préférence un seul - moyen évident de le faire." Et comme la plupart des devises, elle est brisée avec une jubilation sardonique à chaque fois que l'occasion se présente. (C'est pour cela que les devises existent, je suppose.) Malheureusement, à mon humble avis, l'écosystème Python est composé de nombreux éléments. conflictuel des règles "dures et rapides", à ne jamais enfreindre... sauf quand "yada yada yada" (diable, détails, etc). Dans presque tous les cas, cela est dû à l'évolution historique du langage et des outils (et qui veut/a besoin d'une leçon d'histoire quand il veut juste continuer son travail) -- mais cela peut aussi être dû aux différences entre les plateformes Mac/Win/*Nix (par exemple, Unix/Linux a une mentalité similaire, mais a l'avantage d'avoir des décennies de maturité en plus). Donc s'il vous plaît prenez toutes ces "pratique brisée" & "intrinsèquement mauvais" les adeptes du cargo avec une énorme pincée de sel. Certains veulent vraiment bien faire. (D'autres sont juste, eh bien, méchants.)
Tout d'abord, plutôt que des installations basiques "par utilisateur", vous préférerez presque toujours un virtualenv, car c'est probablement ce dont vous aurez besoin au final. Alors autant commencer par là maintenant. Comment ceci est fait, exactement, "dépend" (voir la devise de Python, ci-dessus). Si vous utilisez Conda (principalement pour Mac et Windows), il sera configuré de la manière suivante en utilisant Conda . Si vous utilisez du Python "pur [sic] cela dépend de la version et des utilitaires Python que vous avez, mais virtualenvwrapper est assez pratique.
Deuxièmement, à titre de contre-exemple à la règle "jamais sudo", vous pouvez préférer sudo -H pip install -U numpy
Ce qui est parfaitement acceptable, voire avantageux, dans la mesure où cela peut permettre d'éviter de télécharger/réinstaller/maintenir de grandes bibliothèques, dont vous ne voulez/avez besoin que d'une seule version, dans chaque virtualenv séparément. Les grands frameworks populaires tels que scikit-learn, NumPy, matplotlib, SciPy, pandas, etc. peuvent être installés une fois pour toutes. réutilisé dans tous les environnements . De plus, votre administrateur système local peut être en mesure de les installer pour chaque utilisateur sur un système -- et évidemment ils le feraient via sudo
ainsi que, par exemple, pour des installations plus complexes, comme TensorFlow.
Enfin, si vous installez une bibliothèque tierce aléatoire qui fait telle ou telle chose (API Twitter, traitement de texte, formatage de code, etc.), je suis tout à fait d'accord : ne l'installez pas en tant que root via sudo. Bien sûr, installez-la sous votre utilisateur actuel. Mais n'oubliez pas, votre utilisateur contient toutes vos données importantes .