I dla bardziej temperamentnej odpowiedzi:
- Rzeczywiście zawsze musisz
sudo apt-get install ...
, właśnie tak zaprojektowano narzędzie do pracy.
- Używanie
sudo [-H]
z pip install
jest zarówno możliwe, jak i opcjonalne, w zależności od tego, co dokładnie chcesz zrobić (a zatem „kontrowersje”).
Jednym z motto Pythona jest: „Powinien istnieć jeden - a najlepiej tylko jeden - oczywisty sposób”. I jak większość motorów, jest rozbity sardoniczną radością pozornie przy każdej możliwej okazji. (Właśnie dlatego istnieją motta.) Niestety, w mojej najbardziej skromnej opinii, ekosystem Pythona składa się z wielu sprzecznych „twardych i szybkich” zasad, których nigdy nie należy łamać ... z wyjątkiem sytuacji, gdy „yada yada yada” (diabeł, szczegóły itp.). W prawie wszystkich przypadkach jest to spowodowane historyczną ewolucją języka i narzędzi (i kto chce / potrzebuje lekcji historii, gdy chcą po prostu zacząć swoją pracę) - ale może również wynikać z różnic w Mac / Win / * Platformy Nix (np. Unix / Linux ma podobną mentalność,weźcie tych wszystkich „zepsutych praktyk” i „z natury niewłaściwych” kultystów ładunku z ogromną szczyptą soli. Niektóre faktycznie mają dobre intencje. (Inni są po prostu, no cóż, złośliwi).
Przede wszystkim, zamiast podstawowych „instalacji na użytkownika”, prawie zawsze wolisz virtualenv, ponieważ tak naprawdę prawdopodobnie tego właśnie będziesz potrzebować. Więc równie dobrze możesz zacząć już teraz. Jak to się robi, dokładnie „zależy” (patrz motto Pythona powyżej). Jeśli używasz Conda (głównie dla komputerów Mac i Windows), zostanie ona skonfigurowana przy użyciu Conda . Jeśli używasz „czystego” Pythona [sic] , zależy to od wersji i użytego Pythona, ale virtualenvwrapper jest bardzo przydatny.
Po drugie, podobnie jak w przypadku zasady „nigdy sudo”, możesz preferować sudo -H pip install -U numpy
, co jest całkowicie w porządku, a nawet korzystne, ponieważ pozwala uniknąć pobierania / ponownej instalacji / utrzymywania dużych bibliotek, gdzie tylko chcesz / potrzebuję jednej wersji na każdą wirtualną osobno. Duże, popularne frameworki, takie jak scikit-learn, NumPy, matplotlib, SciPy, pandy itp., Mogą zostać zainstalowane raz i wykonane i ponownie użyte w różnych środowiskach . Ponadto lokalny przyjazny administrator systemu może być w stanie zainstalować je dla każdego użytkownika w systemie - i oczywiście sudo
robiliby to również za pośrednictwem np. Bardziej skomplikowanych instalacji, takich jak TensorFlow.
I na koniec, jeśli instalujesz jakąś losową bibliotekę innej firmy, która robi takie a takie (API Twittera, munging tekstu, formatowanie kodu itp.), To całkowicie się zgadzam - nie instaluj go jako root za pośrednictwem sudo. Jasne, zainstaluj go jako bieżącego użytkownika. Pamiętaj jednak, że na Twoim koncie użytkownika znajdują się wszystkie naprawdę ważne rzeczy .
sudo pip install
są z natury błędne. - z stackoverflow.com/a/33004920/95735