Jak ustawić domyślną wersję Pythona na 3.x na OS X?

Używam Mountain Lion i podstawową domyślną wersją Pythona jest 2.7. Pobrałem Pythona 3.3 i chcę ustawić go jako domyślny.

Aktualnie:

$ python
    version 2.7.5
$ python3.3
    version 3.3

Jak ustawić go tak, aby przy każdym uruchomieniu $ python otwierał 3.3?

Author: U3.1415926, 2013-08-25

21 answers

Zmiana domyślnej wersji pliku wykonywalnego Pythona w całym systemie może złamać niektóre aplikacje, które zależą od python2.

Można jednak alias poleceń w większości powłok, ponieważ domyślne powłoki w systemie macOS (bash w wersji 10.14 i poniżej; zsh w wersji 10.15) mają podobną składnię. Możesz umieścić alias python= 'python3' w twoim ~/.profile, a następnie source ~/.profile w twoim ~/.bash_profile i/lub twoim {[7] } z linią w stylu:

[ -e ~/.profile ] && . ~/.profile

W ten sposób twój alias będzie działał na skorupach.

Z to polecenie python wywołuje teraz python3. Jeśli chcesz wywołać" oryginalny " python (który odnosi się do python2), możesz użyć command python, który pozostawi alias nietknięty i działa we wszystkich powłokach.

Jeśli uruchamiasz interpretery częściej (ja), zawsze możesz utworzyć więcej aliasów do dodania, np.:

alias 2='python2'
alias 3='python3'

Wskazówka: dla skryptów, zamiast używać shebang jak:

#!/usr/bin/env python

Użycie:

#!/usr/bin/env python3

W ten sposób system będzie używał python3 do uruchamiania Pythona executables.

 600
Author: Santosh Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-29 02:10:23

Można go rozwiązać za pomocą dowiązania symbolicznego.

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
 164
Author: Shin Kim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-16 20:49:25

Otwórz ~/.plik bash_profile.

vi ~/.bash_profile

Następnie wpisz alias w następujący sposób:

alias python='python3'

Teraz zapisz plik, a następnie uruchom ~/.plik bash_profile.

source ~/.bash_profile
Gratulacje !!! Teraz możesz użyć python3 wpisując python .
python --version

Python 3.7.3

 65
Author: Ananta Chandra Das,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-05 15:05:18

Przejdź do typu terminala:

alias python=python3.x

To ustawi domyślny python jako python3.x

 26
Author: Aditya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-17 09:39:32

Jestem trochę spóźniony do gry na ten temat, ale pomyślałem, że powinienem opublikować zaktualizowaną odpowiedź, ponieważ właśnie napotkałem ten problem dla siebie. Należy pamiętać, że będzie to miało zastosowanie tylko do konfiguracji Mac (nie próbowałem go z systemem Windows lub jakikolwiek smak Linuksa).

Najprostszym sposobem, aby to zadziałało, jest zainstalowanie Pythona przez Brew. Jeśli nie masz zainstalowanego brew, musisz to zrobić najpierw. Po zainstalowaniu wykonaj następujące czynności w terminalu:

brew install python

To zainstaluje Pythona 3. Po zainstalowaniu uruchom to:

ls -l /usr/local/bin/python*

Zobaczysz wszystkie linki utworzone przez brew do jego instalacji w Pythonie. Będzie to wyglądało mniej więcej tak:

lrwxr-xr-x  1 username  admin  36 Oct  1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x  1 username  admin  43 Oct  1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x  1 username  admin  38 Oct  1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x  1 username  admin  45 Oct  1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x  1 username  admin  39 Oct  1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x  1 username  admin  46 Oct  1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config

Pierwszy wiersz w tym przykładzie pokazuje dowiązanie symboliczne python3. Aby ustawić go jako domyślny python, uruchom następujące polecenie:

ln -s -f /usr/local/bin/python3 /usr/local/bin/python

Po ustawieniu można wykonać:

which python

I powinno pokazywać:

/usr/local/bin/python

Będziesz musiał przeładować swoją obecną powłokę terminala, aby mogła użyć nowego dowiązania symbolicznego w tym shell, jednak wszystkie nowo otwarte sesje shell ' a będą (powinny) używać go automatycznie. Aby to przetestować, otwórz nową powłokę terminala i uruchom następujące polecenie:

python --version
 23
Author: sknight,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-03 21:03:46

Następujące zadziałały dla mnie

cd /usr/local/bin
mv python python.old
ln -s python3 python
 14
Author: Mayank Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-05 20:58:17

To mi pomogło. Dodałem alias i uruchomiłem ponownie Mój terminal :

alias python=/usr/local/bin/python3
 12
Author: toadead,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-01 19:39:06

Idź do 'Applications', wejdź do folderu 'Python' , powinien być skrypt bash o nazwie ' Update Shell Profile.polecenie " lub podobne. Uruchom ten skrypt i powinien to zrobić.

Aktualizacja: wygląda na to, że nie powinieneś go aktualizować: Jak zmienić domyślną wersję Pythona?

 9
Author: CT Zhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-09 13:47:17

Wydaje mi się, że większość ludzi tu wylądowała używa ZSH iterm czy jakoś tak, i to sprowadza cię do tej odpowiedzi .

Zamiast tego musisz dodać / zmodyfikować swoje polecenia w ~/.zshrc.

 6
Author: Mr. Crowley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 14:42:56

Sugestie dotyczące aliasu Pythona na python3 spowodują problemy ze środowiskami wirtualnymi, które ustawiają wersję Pythona (np.: pyenv). Za pomocą pyenv możesz ustawić globalną wersję w następujący sposób:

pyenv global 3.8.2

A następnie w dowolnym konkretnym projekcie można utworzyćpython-plik wersji, w którym znajduje się wersja Pythona:

pyenv local 2.7.1

Jest to moim zdaniem najlepszy sposób zarządzania wieloma wersjami Pythona na systemie.

 5
Author: jacob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-11 14:49:00
$ sudo ln -s -f $(which python3) $(which python)
Zrobione.
 4
Author: oori,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-30 20:56:05

Myślę, że kiedy instalujesz Pythona, umieszcza on instrukcje export path w twoim~/.plik bash_profile. Jeśli więc nie zamierzasz już używać Pythona 2, możesz po prostu usunąć to polecenie. Alias jak wspomniano powyżej jest również świetnym sposobem, aby to zrobić.

Oto jak usunąć odniesienie z~/.bash_profile - vim ./.bash_profile - Usuń odniesienie (AKA coś w stylu: export PATH=" / Users / bla/anaconda:$PATH") - Zapisz i wyjdź źródło ./.bash_profile aby zapisać zmiany

 3
Author: doubleOK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-10 19:28:09

Dobry i zły sposób na ustawienie Pythona 3 jako domyślnego na komputerze Mac

W tym artykule autor omówi trzy sposoby ustawienia domyślnego Pythona:

    Czego nie robić.
  1. co moglibyśmy zrobić (ale i nie powinniśmy).
  2. Co powinniśmy zrobić!

Wszystkie te sposoby działają. Ty zdecyduj, który jest lepszy.

 3
Author: David Gabrichidze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-25 06:38:34

Na MacOS

Krok 1: Upgrade Pythona do najnowszej wersji przez: $ brew upgrade python

Krok 2: Idź do domu: $ cd

Krok 3: Otwórz .bash_profile

$ vi .bash_profile

Ustawianie ścieżki dla Pythona 3.8

PATH= " /Library/Framework / Python.framework / Versions / 3.8 / bin:${PATH}" ścieżka eksportu

Krok-4: Zapisz plik. I kompilacji przez:

$ . .bash_profile

Krok 5: Sprawdź wersję Pythona:

$ python-V

Krok-6: wszystkie.

 3
Author: ArunDhwaj IIITH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-09 17:07:19

Nie jestem pewien, czy jest to dostępne na OS X, ale na Linuksie użyłbym komendy module. Zobacz tutaj .

Ustaw plik modulefile poprawnie, a następnie dodaj coś takiego do pliku rc (np.~/."bashrc"): {]}

module load python3.3

Spowoduje to, że Ścieżki zostaną zmienione zgodnie z wymaganiami podczas logowania, bez wpływu na domyślne ustawienia systemu.

 2
Author: Vorticity,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-25 05:31:03

Użytkownicy komputerów Mac muszą po prostu uruchomić następujący kod na terminalu

brew switch python 3.x.x

3.x. x powinna być nową wersją Pythona.

Spowoduje to aktualizację wszystkich linków systemowych.

 2
Author: Dilshan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-02 13:57:59

Jeśli używasz macports, nie musisz bawić się aliasami ani zmiennymi środowiskowymi, po prostu użyj metody, którą oferuje już macports, wyjaśnionej tym pytaniem:

Jak: Macports wybierz python

TL; DR:

sudo port select --set python python27
 2
Author: PeterT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-27 21:43:19

Jeśli używasz virtualenvwrapper, możesz po prostu zlokalizować go za pomocą which virtualenvwrapper.sh, a następnie otworzyć go za pomocą vim lub innego edytora, a następnie zmienić następujące

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

Zmień linię VIRTUALENVWRAPPER_PYTHON="$(command \which python)" na VIRTUALENVWRAPPER_PYTHON="$(command \which python3)".

 1
Author: Esir Kings,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-17 19:23:48

Dla mnie rozwiązaniem było użycie PyCharm i ustawienie domyślnej wersji Pythona na tę, z którą muszę pracować.

Zainstaluj PyCharm i przejdź do pliku = = > preferencje dla nowego projektu, a następnie wybierz interpreter, który chcesz dla swoich projektów, w tym przypadku python 3.3

 1
Author: ChamCham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-12 13:21:03

Jeśli używasz macports, ma to łatwiejszy sposób:

Run:

port install python37

Po instalacji Ustaw domyślną wartość:

sudo port select --set python python37

sudo port select --set python3 python37

Uruchom ponownie okno cmd, gotowe.

 1
Author: Clark So,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-15 11:24:13

No cóż... Jest trochę stary. Ale nadal zasługuje na dobrą odpowiedź.

A dobrym jest nie chcesz dotykać domyślnego Pythona na Macu.

Zainstaluj dowolną wersję Pythona przez Homebrew lub cokolwiek innego i użyj jej w virtualenv. Virtualenv jest często uważany za coś gównianego, ale nadal jest o wiele lepszy niż zmiana wersji Pythona w całym systemie (macOS prawdopodobnie chroni się przed takimi działaniami)lub w całym systemie bash... nieważne. Po prostu zapomnij o domyślny Python. Korzystanie z placów zabaw, takich jak venv, jest tym, za co Twój system operacyjny będzie najbardziej, bardzo wdzięczny.

Na przykład, wiele nowoczesnych dystrybucji Linuksa pozbywa się Python2 zainstalowanego po wyjęciu z pudełka, pozostawiając tylko Python3 w systemie. Ale za każdym razem, gdy próbujesz zainstalować coś starego z python2 jako zależność... mam nadzieję, że rozumiesz, co mam na myśli. Dobry deweloper ma to gdzieś. Dobrzy programiści tworzą czyste place zabaw w wersji Pythona, której pragną.

 1
Author: Tor_Gash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-02 11:35:20