2013-03-08 10 views
10

Chcę zainstalować python za pomocą homebrew i zauważyłem, że są 2 różne formuły dla niego, jeden dla Pythona 2.x i inny dla 3.x. Pierwsze dowiązanie symboliczne "python", a drugie używa "python3". więc uruchomiłem brew install python3.W homebrew jak zmienić python3 dowiązanie symboliczne do "python"

Naprawdę zależy mi tylko na używaniu Pythona 3, więc chciałbym, aby domyślne polecenie brzmiało "python", zamiast wpisywać "python3" za każdym razem. Czy jest jakiś sposób na zrobienie tego? Próbowałem brew switch python 3.3, ale pojawia się błąd "Python nie znaleziono w piwnicy".

+0

Jeśli naprawdę chcesz to zrobić, nie rób tego. Zamiast tego użyj virtualenv. –

Odpowiedz

7

Z pewnością chcesz , nie chcesz to zrobić! Możesz dbać tylko o Python 3, ale wiele osób pisze kod, który oczekuje, że python zostanie dowiązany symbolicznie do Pythona 2. Zmiana może poważnie naruszyć twój system.

+2

Jeśli zrobisz to w '/ usr/local/bin' lub w innym, prawdopodobnie nie zepsujesz żadnych programów systemowych, które powinny jawnie używać'/usr/bin'. Ale zgadzam się, że większość dystrybucji i użytkowników nadal przyjmuje, że 'python' oznacza' python2'. To się w końcu zmieni. I na pewno możesz zdecydować się na nowatorski system dla własnego systemu. Jest już co najmniej jeden wyjątek: Wierzę, że Arch Linux jest dostarczany z 'pythonem' połączonym z' python3'. –

+0

Oczywiście. Jednak w Arch, deweloperzy oczekują * Py3. Jeśli podasz program Py3, gdy spodziewa się Py2, prawdopodobnie wzniesiesz program.Istnieją wyjątki, z Cross Python Compatibility (co jest czymś, do czego dążę), ale w większości wypadków trafisz na 'print xxx' lub' x = y/3 # int expected' i skończysz w pociągu wrak. – pydsigner

+0

Prawda, ale przypuszczalnie OP zakłada Maca dla siebie (Homebrew to tylko Mac). Użytkownik uważaj. –

3

Jeśli jesteś absolutnie pewien, że nigdy nie będziesz chciał zainstalować/używać Pythona 2, myślę, że możesz po prostu utworzyć dodatkowe dowiązania symboliczne w/usr/local/bin. Sprawdź za wszystko, co łączy się czymś w

../Cellar/python3/3.3.0/ 

i utworzyć link bez 3 na koniec, jak

python -> ../Cellar/python3/3.3.0/bin/python3 

Zastanów się jednak, dlaczego zrezygnować zalety posiadania dwóch Pythons stronie- przy boku? Może po prostu użyjesz Pythona homebrew zgodnie z przeznaczeniem i utworzysz środowiska Python 3 z virtualenv.

2

Jeśli robisz to do użytku osobistego, nie zmieniaj linku symbolicznego dla python. Wiele programów systemowych polega na tym, że python wskazuje na Python 2.6, a złamiesz je, jeśli zmienisz dowiązanie symboliczne.

Zamiast tego wybierz krótszą nazwę, taką jak py, i wpisz jej alias w polu ~/.bashrc, na przykład alias py=python3.

Na przykład z badań:

$ echo "alias py=python3" >> ~/.bashrc 
$ bash 
$ py 
>>> 3+3 
6 

To daje wygodę bez wpływu systemu lub innych użytkowników.

0

Tak, zdecydowanie lepiej jest użyć [środowisk wirtualnych] (https://docs.python.org/3/library/venv.html) dla Pythona 3 niż bałagan z domyślnego systemu

pyvenv /path/to/new/virtual/environment 

która konfiguracja python 3 jako domyślny python a także wyizolować pip instaluje do tego środowiska co chcesz zrobić w dowolnym projekcie.

0

Jak wspomniano, nie jest to najlepszy pomysł. Jednak najprostszą rzeczą do zrobienia w razie potrzeby jest uruchomienie python3 w terminalu. Jeśli potrzebujesz uruchomić coś dla python3, uruchom python3

Powiązane problemy