Jak mogę użyć Homebrew do zainstalowania Pythona 2 i 3 na Macu?
146
Muszę mieć możliwość przełączania się między Pythonem 2 i 3. Jak to zrobić używając Homebrew, ponieważ nie chcę mieszać ze ścieżką i wpadać w kłopoty. W tej chwili mam zainstalowany 2.7 przez Homebrew.
Możesz zmienić pytanie, aby usunąć odniesienie do homebrew, ponieważ niekoniecznie jest to wymóg osiągnięcia twojego celu (zobacz moją odpowiedź poniżej, na przykład stackoverflow.com/a/49091638/2923369 )
Aby włączyć pyenv w powłoce Bash, musisz uruchomić:
$ eval "$(pyenv init -)"
Aby zrobić to automatycznie dla Bash podczas uruchamiania, dodaj tę linię do swojego ~/.bash_profile. 1
Stosowanie:
Po zainstalowaniu pyenv i aktywowaniu go, możesz zainstalować różne wersje Pythona i wybrać, której chcesz użyć. Przykład:
$ pyenv install 2.7.5
Możesz sprawdzić wersje, które zainstalowałeś z:
$ pyenv versions
I możesz przełączać się między wersjami Pythona za pomocą polecenia:
$ pyenv global3.3.1
Możesz również ustawić wersję Pythona dla bieżącego katalogu za pomocą:
$ pyenv local 3.5.2
Możesz sprawdzić, uruchamiając python --version:
$ python --version
Python3.5.2
1 Homebrew poinstruował Cię, abyś zrobił to podczas instalacji pyenv, ale wiadomość została usunięta . W przypadku pocisków Zsh i innych dokładne kroki mogą być inne.
To najprostsze rozwiązanie. Obecnie używam tego do przełączania się między Pythonem 3 i 2.7.x
Naz Mir,
3
Jeśli zainstalowałem już Pythona 2.7 przez homebrew , czy jest coś, co powinienem zająć się używaniem pyenv ? Czy mogę zainstalować inny Python 2.7 przez Pyenv ?
Drake Guan
3
Tak, możesz zainstalować inny Python 2.7 przez pyenv. Zainstaluje tego Pythona w $ PYENV_ROOT / Versions. Drugi Python 2.7 zainstalowany przez homebrew może pojawić się jako „system” po uruchomieniu „wersji pyenv”.
Teraz będziesz mieć obie wersje zainstalowane na swoim komputerze. Jeśli chcesz użyć wersji 2, użyj pythonpliku wykonywalnego. Jeśli chcesz używać wersji 3, użyj python3pliku wykonywalnego.
Dziękuję za aktualizację! Podążałem podobną drogą, ale miałem problemy z ustawieniem PYTHONPATHprzy każdej zmianie ... jakiś pomysł? poza tym pyenvjest świetny.
meduz
9
Należy również zauważyć, że mając python2 i python3 obok siebie, python wskazuje na python2, a python3 wskazuje na python3 zgodnie z oczekiwaniami. Jednak dużym problemem jest to, że pip nie wskazuje na pip2, jak można się spodziewać. W rzeczywistości wskazuje na pip3 (podobnie jak oczywiście pip3). Aby użyć pip2, jawnie użyj pip2. Trochę niespójne posiadanie sufiksu niebędącego liczbą dla Pythona wskazuje 2, ale przyrostka innego niż numer dla pip wskazuje 3.
JD
5
To psuje typowe pliki wykonywalne, takie jak pip. python3 nadpisze w tym przypadku python2 pip i będzie to domyślne polecenie "pip"
kissgyorgy
1
W odpowiedzi na komentarz użytkownika @ kissgyorgy: miałem ten problem, ostatni komentarz w tej sprawie postanowił go dla mnie github.com/Homebrew/legacy-homebrew/issues/50607 , bieganie python3 -m pip install -U --force-reinstall pipnastępnie python -m pip install -U --force-reinstall pipumieścić rzeczy z powrotem do konieczności pipdotyczą Pythona 2'S pip.
Harry
11
Obecnie Homebrew udostępnia dwie różne formuły dla Pythona 2 i 3. brew install pythoninstaluje python3 i brew install python@2instaluje python2. Więcej szczegółów w dokumentacji Homebrew:
Alternatywnie, prawdopodobnie możesz po prostu wpisać „python3”, aby uruchomić najnowszą wersję python3.x i „python” lub „python2”, aby uruchomić najnowszą zainstalowaną wersję 2.x.
Istnieją sposoby na użycie obu, ale najprostszym rozwiązaniem jest dziś użycie pyenv . pyenv umożliwia łatwe przełączanie między wersjami. Oto, co zrobiłem, aby skonfigurować:
Kiedyś był język programowania
Było wiele jego wersji
Więc ludzie napisali dla niego menadżera wersji
Aby przełączać się między wersjami dla projektów
Różne, stare, nowe.
Potem pojawiło się więcej języków programowania,
więc pojawiło się więcej menedżerów wersji
i wiele poleceń dla nich
Zainstalowałem wiele z nich
, nauczyłem się wielu poleceń
Potem powiedziałem, jeszcze tylko jeden menedżer wersji
który napiszę zamiast tego
Menedżer wersji tak rozszerzalny,
dla którego każdy może stworzyć wtyczkę
Aby obsługiwać swój ulubiony język
Koniec z instalowaniem kolejnych menedżerów wersji
ani uczeniem się więcej poleceń
Wydaje mi się, że nie są to konkurencyjne narzędzia, ale to samo narzędzie, zaimplementowane raz (a czasem więcej niż raz) na język. Trochę jak dlaczego potrzebujemy też czegoś takiego jak LSP, IMHO. microsoft.github.io/language-server-protocol/overview
Matt Schlobohm
1
Myślałem, że mam ten sam wymóg - przechodzenie między wersjami Pythona - ale wszystko, czego potrzebowałem, osiągnąłem tylko z Pythonem 3.6, budując ze źródła zamiast używać homebrew.
git clone https://git.<theThingYouWantToInstall>
W zależności od repozytorium sprawdź, czy istnieje już plik MAKE skonfigurowany dla tej opcji.
Udało mi się po prostu przejść do https://www.python.org/downloads/mac-osx/ i pobrać najnowszą wersję Pythona. Został zainstalowany obok obecnego języka Python w moim systemie.
Odpowiedzi:
Użyłbym pyenv go można zainstalować:
Aby włączyć pyenv w powłoce Bash, musisz uruchomić:
Aby zrobić to automatycznie dla Bash podczas uruchamiania, dodaj tę linię do swojego
~/.bash_profile
. 1Stosowanie:
Po zainstalowaniu pyenv i aktywowaniu go, możesz zainstalować różne wersje Pythona i wybrać, której chcesz użyć. Przykład:
Możesz sprawdzić wersje, które zainstalowałeś z:
I możesz przełączać się między wersjami Pythona za pomocą polecenia:
Możesz również ustawić wersję Pythona dla bieżącego katalogu za pomocą:
Możesz sprawdzić, uruchamiając
python --version
:1 Homebrew poinstruował Cię, abyś zrobił to podczas instalacji pyenv, ale wiadomość została usunięta . W przypadku pocisków Zsh i innych dokładne kroki mogą być inne.
źródło
eval "$(pyenv init -)"
do mojego .profile / .zshrc, aby pyenv działał.eval "$(pyenv init -)"
do swojego ~ / .bash_profileMożesz mieć zainstalowane obie wersje w tym samym czasie.
Dla Homebrew> = 1.5.0:
Od 1 marca 2018 r.
python
Formuła zostanie uaktualniona do Pythona 3.x, a nowapython@2
formuła zostanie dodana specjalnie dla Pythona 2.7.Zobacz ogłoszenie o zmianach tutaj lub ostateczny dokument o używaniu Homebrew dla Pythona tutaj .
Dla starszych Homebrew:
W przypadku Pythona 2.x:
W przypadku Pythona 3.x:
Teraz będziesz mieć obie wersje zainstalowane na swoim komputerze. Jeśli chcesz użyć wersji 2, użyj
python
pliku wykonywalnego. Jeśli chcesz używać wersji 3, użyjpython3
pliku wykonywalnego.źródło
PYTHONPATH
przy każdej zmianie ... jakiś pomysł? poza tympyenv
jest świetny.python3 -m pip install -U --force-reinstall pip
następniepython -m pip install -U --force-reinstall pip
umieścić rzeczy z powrotem do koniecznościpip
dotyczą Pythona 2'Spip
.Obecnie Homebrew udostępnia dwie różne formuły dla Pythona 2 i 3.
brew install python
instaluje python3 ibrew install python@2
instaluje python2. Więcej szczegółów w dokumentacji Homebrew:https://docs.brew.sh/Homebrew-and-Python
Jeśli obecnie masz zainstalowany 2.x przez Homebrew, Homebrew wyświetli komunikat, taki jak:
Jeśli biegasz:
powinieneś umieć:
i
Aby zobaczyć, jakie wersje Pythona 2.x i 3.x są zainstalowane.
źródło
Alternatywnie, prawdopodobnie możesz po prostu wpisać „python3”, aby uruchomić najnowszą wersję python3.x i „python” lub „python2”, aby uruchomić najnowszą zainstalowaną wersję 2.x.
źródło
Istnieją sposoby na użycie obu, ale najprostszym rozwiązaniem jest dziś użycie pyenv . pyenv umożliwia łatwe przełączanie między wersjami. Oto, co zrobiłem, aby skonfigurować:
KROK 1:
Usuń wszystkie Pythony z komputera Mac
Usuń następujące elementy z
~/.bash_profile
a także następujące z
~/.bashrc
KROK 2 :
Zainstaluj pyenv i potrzebne wersje Pythona
KROK 3 :
dodaj
pyenv init
dobash_profile
lubbashrc
KROK 4 :
Sprawdź, co zostało zainstalowane
KROK 5:
Wybierz domyślną
Gdy projekt wymaga starszej wersji, po prostu przejdź do jego folderu głównego i uruchom
źródło
Użyj asdf !
https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins
źródło
Myślałem, że mam ten sam wymóg - przechodzenie między wersjami Pythona - ale wszystko, czego potrzebowałem, osiągnąłem tylko z Pythonem 3.6, budując ze źródła zamiast używać
homebrew
.git clone https://git.<theThingYouWantToInstall>
W zależności od repozytorium sprawdź, czy istnieje już plik MAKE skonfigurowany dla tej opcji.
źródło
Udało mi się po prostu przejść do https://www.python.org/downloads/mac-osx/ i pobrać najnowszą wersję Pythona. Został zainstalowany obok obecnego języka Python w moim systemie.
źródło
Okej, zmagałem się z instalacją Pythona3, ponieważ nie miałem pip3
i tak zrobiłem
i zainstalowałem zwykły Python 3.6.2 z oficjalnej dystrybucji, a potem miałem pip3 i wszystkie komponenty były w porządku.
źródło