E para uma resposta mais temperada:
- Você realmente precisa sempre
sudo apt-get install ...
, é assim que a ferramenta foi projetada para funcionar.
- Usar
sudo [-H]
com pip install
é possível e opcional, dependendo exatamente do que você deseja fazer (e, portanto, "controvérsia").
Um dos lemas de Python é "Deve haver um - e de preferência apenas um - modo óbvio de fazê-lo". E, como a maioria dos lemas, é quebrado com alegria sardônica, aparentemente em todas as oportunidades possíveis. (É por isso que os lemas existem, eu acho.) Infelizmente, na minha opinião mais humilde, o ecossistema Python consiste em muitas regras "duras e rápidas" conflitantes , que nunca serão quebradas ... exceto quando "yada yada yada" (diabo, detalhes, etc). Em quase todos os casos, isso se deve à evolução histórica do idioma e das ferramentas (e quem quer / precisa de uma lição de história quando quer apenas continuar seu trabalho) - mas também pode ser devido a diferenças no Mac / Win / * Plataformas Nix (por exemplo, Unix / Linux tem uma mentalidade semelhante,tome todas essas "práticas desestruturadas" e cultistas de carga "inerentemente errados" com uma enorme pitada de sal. Alguns realmente significam bem. (Outros são apenas, bem, maus.)
Antes de tudo, em vez de "instalações por usuário" básicas, você quase sempre prefere um virtualenv, porque na verdade é provavelmente o que você vai precisar. Então você pode começar com isso agora. Como isso é feito, exatamente "depende" (veja o lema do Python, acima). Se você estiver usando o Conda (principalmente para Mac e Windows), ele será configurado usando o Conda . Se estiver usando Python "puro" [sic] , isso depende de qual versão e quais utilitários python você possui, mas o virtualenvwrapper é bastante útil.
Segundo, apenas como um contra-exemplo da regra "nunca sudo", você pode preferir sudo -H pip install -U numpy
, o que é perfeitamente bom e até vantajoso, pois permite evitar o download / reinstalação / manutenção de grandes bibliotecas, nas quais você só deseja / precisa de uma versão para cada virtualenv separadamente. Estruturas grandes e populares como scikit-learn, NumPy, matplotlib, SciPy, pandas etc. podem ser instaladas uma vez e concluídas e reutilizadas em ambientes . Além disso, seu administrador de sistema amigável local pode conseguir instalá-los para todos os usuários de um sistema - e obviamente eles o sudo
farão via também, por exemplo, para instalações mais complicadas, como o TensorFlow.
E, finalmente, se você estiver instalando alguma biblioteca aleatória de terceiros que faz isso e aquilo (API do Twitter, alteração de texto, formatação de código etc.), concordo totalmente - não a instale como root via sudo. Claro, instale-o como seu usuário atual. Mas lembre-se, sua conta de usuário tem todas as suas coisas realmente importantes .
sudo pip install
são inerentemente erradas. - de stackoverflow.com/a/33004920/95735