Mogę zainstalować pakiet python ( na przykład , numpy
) na komputerze Mac za pośrednictwem MacPorts:
port install py-numpy
lub przez pip
:
pip install numpy
Jakie są ogólne zalety / wady każdego podejścia? Kiedy należy zastosować każde podejście?
- Kiedy powinienem preferować jeden od drugiego?
- Czy to ważne, czy pakiet, który instaluję, jest mały czy duży (np.
numpy
)? - Czy to zależy od wersji Pythona, której używam (
2.x
vs.3.x
lub Applepython
vs. MacPortpython
)? - Czy to ważne, czy mam wiele wersji
python
zainstalowanych na komputerze Mac? - Czy można ich używać jednocześnie?
Mam nadzieję na odpowiedź, która zawiera krótką listę niektórych zalet / wad każdego podejścia z dyskusją na temat tego, kiedy wybrać jedną z drugiej.
matplotlib
.numpy
to tylko przykład. Pytam ogólnie o instalację pakietów.Odpowiedzi:
Można ich używać jednocześnie i nie powinno być problemu między ich mieszaniem (z jednym rodzajem ostrzeżenia i gotcha ...)
Zastrzeżenie
Zastrzeżenie polega na tym, że Macports / Homebrew i Pip nie będą świadomi, że każdy z nich został zainstalowany względem drugiego.
Załóżmy na przykład, że instalujesz Pythona 3.6 na komputerze Mac. Chcesz
nltk
, który nie jest technicznie dostępny dla tej wersji na Macports, ale jest na pip. Więc instalujesz na pip. Dwa miesiące później zobaczysz, że jest zainstalowany na Macports i zdecydujesz się go zainstalować. Teraz masz dwie różne wersjenltk
na swoim komputerze, więc zastrzegaj emptor .Gotcha
Jeśli używasz pip z Macports, musisz upewnić się, że to pip jest zainstalowany za pośrednictwem Macports i powiązany z tą wersją Pythona. Na przykład zobaczysz py35-pip, py36-pip itp.
Po zainstalowaniu właściwego pipa, użyj
select
polecenia Macports, aby upewnić się, że jest on aktywowany za pomocą odpowiedniej wersji Pythona:źródło
Powinieneś użyć,
pip
ponieważ jest to rodzime narzędzie Pythona do zarządzania instalacjami pakietów, ale nie powinieneś instalować potoków w podstawowej instalacji Pythona. Problemem może być uporządkowanie zależności między wersjami między wieloma repozytoriami oprogramowania, jeśli instalujesz wszystko pipem w podstawowej instalacji Pythona na swoim komputerze.Zamiast tego powinieneś zainstalować pipen virtualenv, a następnie użyć go do zarządzania różnymi wirtualnymi instalacjami Pythona i wszystkimi powiązanymi pakietami zainstalowanymi pipem dla każdego środowiska wirtualnego.
Pozwala to na przejście z pracy, powiedzmy,
beautifulsoup
1.x w jednym repozytorium oprogramowania nabeautifulsoup
2.x w innym repozytorium bez konieczności przechodzenia przez piekło zarządzania zależnościami.źródło
Właśnie zrobiłem szybki test w poszukiwaniu tego samego pakietu przy użyciu Homebrew , MacPorts i pip3 :
MacPorts i pip3 miały ten sam pakiet (wersja 1.18.1 ), podczas gdy Homebrew miał wersję 1.16 .
Współpracując z innymi, najlepiej uzgodnij, w jaki sposób skonfigurowane są środowiska programistyczne, inaczej zaczniesz wpadać na anomalie i uzyskiwać różne wyniki testów. Dlatego najlepszym narzędziem jest to, na które wszyscy się zgadzacie ;-)
źródło