E per una risposta più moderata:
- Davvero devi sempre
sudo apt-get install ...
, è così che lo strumento è stato progettato per funzionare.
- L'uso
sudo [-H]
con pip install
è sia possibile sia facoltativo, a seconda di cosa esattamente si vuole fare (e quindi "polemica").
Uno dei motti di Python è "Dovrebbe esserci uno - e preferibilmente solo un - modo evidente di farlo." E come la maggior parte dei motti, è rotto con allegria sardonica apparentemente in ogni occasione possibile. (Ecco perché i motti esistono, immagino.) Sfortunatamente, secondo la mia più umile opinione, l'ecosistema Python è costituito da molte regole "hard & fast" contrastanti , da non infrangere mai ... tranne quando "yada yada yada" (diavolo, dettagli, ecc.). In quasi tutti i casi, ciò è dovuto all'evoluzione storica della lingua e degli strumenti (e chi vuole / ha bisogno di una lezione di storia quando vuole solo andare avanti con il proprio lavoro) - ma può anche essere dovuto alle differenze in Mac / Win / * Piattaforme Nix (ad es. Unix / Linux ha una mentalità simile,prendi tutte queste "pratiche rotte" e " cultisti del male intrinsecamente sbagliati" con un enorme pizzico di sale. Alcuni in realtà significano bene. (Altri sono solo, beh, cattivi.)
Prima di tutto, piuttosto che "installazioni per utente" di base, preferirai quasi sempre un virtualenv, perché in realtà è probabilmente quello di cui avrai bisogno. Quindi potresti anche iniziare con questo ora. Come ciò avvenga esattamente "dipende" (vedi il motto di Python, sopra). Se stai usando Conda (principalmente per Mac e Windows), verrà impostato usando Conda . Se usi "puro" Python [sic] , dipende da quale versione e quali programmi di utilità python hai, ma virtualenvwrapper è piuttosto utile.
In secondo luogo, proprio come contro-esempio della regola "mai sudo", potresti preferire sudo -H pip install -U numpy
, il che è perfettamente bene, anche vantaggioso, in quanto può consentire di evitare di scaricare / reinstallare / mantenere grandi librerie, dove vuoi solo / serve una versione, in ogni virtualenv separatamente. Grandi framework popolari come scikit-learn, NumPy, matplotlib, SciPy, panda, ecc., Possono essere installati una volta e fatti e riutilizzati in tutti gli ambienti . Inoltre, l'amministratore di sistema locale potrebbe essere in grado di installarli per ogni utente su un sistema - e ovviamente lo farebbero anche tramite sudo
, ad esempio, per installazioni più complicate, come TensorFlow.
E, infine, se stai installando una libreria di terze parti casuale che fa cose del genere (API di Twitter, munging del testo, formattazione del codice, ecc.), Sono pienamente d'accordo: non installarlo come root tramite sudo. Certo, installalo come utente corrente. Ma ricorda, il tuo account utente ha tutte le tue cose davvero importanti .
sudo pip install
sono intrinsecamente sbagliate. - da stackoverflow.com/a/33004920/95735