Próbuję przejść do Homebrew (po użyciu fink i macport) w systemie Mac OS X 10.6.2. Zainstalowałem Python 2.7 z
brew install python
Problem polega na tym, że w przeciwieństwie do Macport, wydaje się, że nie ma narzędzia python_select, a mój domyślny python dla Mac jest zawsze domyślny
which python
daj mi
/usr/bin/python
i /usr/bin/python
nie jest dowiązaniem symbolicznym
Jak mogę zrobić, aby smak napoju Python był moim domyślnym pythonem?
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
źródło: discourse.brew.sh/t/…Odpowiedzi:
Podczas korzystania z Homebrew następujące polecenie daje lepszy obraz:
Wynik:
źródło
python2
znajduje się w / usr / local / bin, tylko dla justpython
; ustawionyexport PATH="/usr/local/opt/python/libexec/bin:$PATH"
w~/.bash_profile
Zobacz: Jak dowiązać do Pythona w Homebrew?
źródło
Szybka naprawa:
/etc/paths
W moim przypadku
/etc/paths
wygląda to tak:Jeśli chcesz dowiedzieć się więcej o ścieżkach w OSX, ten artykuł był bardzo przydatny:
http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/
źródło
Zgodnie z sugestią samego instalatora homebrew, dodaj to do swojego
.bashrc
lub.zshrc
:źródło
.zshrc
plik, a nie.bashrc
plik, który należy zmienić.Zrobiłem „brew install python” dla OSX High Sierra.
$PATH
Miał/usr/local/bin
przed każdym innym drogi, ale wciążwhich python
wskazywał na pytona systemu.Kiedy spojrzałem głębiej, okazało się, że nie ma pliku wykonywalnego Pythona
/usr/local/bin
. Plik wykonywalny ma nazwępython2
. Aby rozwiązać ten problem, utwórz dowiązanie symbolicznepython
wskazujące napython2
:/usr/local/bin $: ln -s python2 python
źródło
Homebrew NIE zastępuje rzeczy w „/ usr / bin”. Po prostu chcesz umieścić „/ usr / local / bin” przed „/ usr / bin” na swojej ścieżce, a następnie „który python” da ci „/ usr / local / bin / python”.
Zastąpienie / usr / bin / python (lub / usr / bin / ruby) jest wysoce niezalecane.
źródło
python
obecnie używa formułypython3
(na razie v3.6.5), brew połączy katalog :połączy również plik binarny :
Jeśli nadal musisz używać
python2.x
, użyj:Aby użyć homebrew's
python
, po prostu umieść jego katalog w PATH, na bash:dla ryb:
Uwaga:
python
/usr/local/share/python
starszymi wersjami.źródło
python3
na twojej ścieżce - nie jest to exec o nazwiepython
.. W szczególności odwołanie się/usr/local/opt/python/libeexec/bin
do innych katalogów na mojej ścieżce rozwiązało problem.Zmodyfikuj swoją ŚCIEŻKĘ $, Dodaj to w swoim bashrc lub bash_profile:
więcej kliknij tutaj: numer 89791
źródło
Musisz edytować zmienną środowiskową PATH, aby upewnić się, że gdziekolwiek znajduje się python homebrew, jest przeszukiwany przed / usr / bin. Możesz również ustawić rzeczy w konfiguracji powłoki, aby zmienna taka jak PYTHON była ustawiona na żądaną wersję Pythona i wywołania
$PYTHON
zamiastpython
z wiersza poleceń.Ponadto, jak napisano w innym plakacie (a zwłaszcza na Macu), NIE zadzieraj z pythonem w / usr / bin, aby wskazać inną instalację Pythona. Po prostu prosisz o kłopoty, jeśli tak.
źródło
Zrobiłem
brew install python
, mój$PATH
był dobry, ale nadalwhich python
dał mi system zainstalowany. Ponowne uruchomienie terminala naprawiło to.źródło
brew install python
a następnie uruchom ponownie terminal i nic więcej? Nie musiszbrew unlink
&brew link
?hash -r
brew unlink & brew link
kilka razy. Potrzebne było tylko ponowne uruchomienie terminalapython
teraz wskazuje napython3
, jeśli potrzebujesz,python 2
to:brew install python@2
a następnie w pliku .zshrc lub .bashrcexport PATH="/usr/local/opt/python@2/libexec/bin:$PATH"
Nowpyhon --version
= Python 2.7.14 ipython3 --version
= Python 3.6.4. Takie zachowanie przyzwyczaiłem się do terminala.źródło
Wierzę, że istnieją sposoby na ustawienie domyślnego Pythona jako homebrew, ale moim zdaniem właściwym sposobem rozwiązania problemu jest nie zadzieranie ze ścieżkami systemowymi: lepiej jest stworzyć virtualenv, w którym domyślnie byłby python homebrew (używając virtualenv - -python). Używanie takich narzędzi
python_select
jest prawie zawsze złym pomysłem.źródło
Zamiast tego użyj pyenv, aby zainstalować i przełączać się między wersjami Pythona. Używam rbenv od lat, co robi to samo, ale dla Ruby. Wcześniej zarządzanie wersjami było piekłem.
Skonsultować stronę GitHub pyenv za instrukcje instalacji. Zasadniczo wygląda to tak: - Zainstaluj pyenv za pomocą homebrew.
brew install pyenv
- Dodaj funkcję na końcu skryptu uruchamiania powłoki, aby pyenv mógł wykonać swoją magię.echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
pyenv install 3.7.7
.pyenv global 3.7.7
.pyevn local
. Spowoduje to utworzenie pliku w folderze projektu, który określa wersję Pythona. Pyenv będzie wyglądał, jakby zastąpił globalną wersję Pythona wersją w tym pliku.źródło
Po prostu zrób:
Po wykonaniu tej czynności dodaj to do swojego bashrc lub bash_profile:
Cieszyć się!
źródło
link
poleceniami w odpowiedziach tutaj,/usr/local/bin
są dlapython2
zamiastpython
. Użycie aliasu do obejścia tego wydaje się złym pomysłem, ale nie znalazłem jeszcze nic lepszego.cp /usr/local/bin/python2 /usr/local/bin/python
i wydawało się, że działa dobrze. Czy to jeszcze brzydsze obejście?Dodaj
/usr/local/opt/python/libexec/bin
jawnie do.bash_profile
:Następnie powinien działać poprawnie.
źródło
Jeśli jesteś skorupą ryb
źródło
Możesz edytować / etc / paths. Tu jest moje:
Następnie dodaj dowiązanie symboliczne dla wersji python. W moim przypadku
Voila!
źródło
Od High Sierra musisz użyć:
Wynika to z faktu, że
/usr/local
nie można go już obalićźródło
Nie mam pojęcia, co masz na myśli, mówiąc o domyślnym języku Python. Uważam za złą praktykę zastępowanie systemowego interpretera języka Python inną wersją. Funkcjonalność systemu może w pewien sposób zależeć od systemowego Pythona i określonych modułów lub określonej wersji Pythona. Zamiast instalować instalacje niestandardowe Pythona w bezpiecznym miejscu i dopasować różne $ PATH, ile potrzeba, aby wywołać cię Python poprzez ścieżki odnośników zamiast szuka domyślnie Pythona.
źródło