To łatwe:
defaults write com.apple.versioner.python Version 2.6
Zobacz man python
pełne wyjaśnienie od Apple.
Ponadto, jeden problem: upewnij się, że używasz Pythona dostarczonego z komputerem, a nie innego, który zainstalowałeś. Zrób to, pisząc which python
w wierszu polecenia. Powinien wskazywać /usr/bin/python
. Wspominam o tym tylko dlatego, że mój domyślny system to Snow Leopard 2.6 (podczas korzystania z Leoparda było to 2.5). Zatem fakt, że otrzymujesz 2.5, może wskazywać, że na twojej drodze jest coś jeszcze.
Aktualizacja
Aby odpowiedzieć na poniższe uwagi:
To nie robi tego, o co pytają ludzie.
Robi to dla mnie w OS X 10.8.2. Po wykonaniu defaults write com.apple.versioner.python Version 2.6
domyślna wersja Pythona to rzeczywiście 2.6. (I podobnie po zmianie z powrotem na 2.7.)
Dzieje się tak niezależnie od tego, czy uruchamiam python
bezpośrednio, czy używam skryptu wykonywalnego zaczynającego się od #!/usr/bin/env python
- Dostaję oczekiwaną wersję Pythona.
Nie rozwiązuje to dowiązania symbolicznego w /System/Library/Frameworks/Python.framework/Versions, gdzie Current wskazuje na 2.7, co może powodować problemy (ponieważ wciąż jest w sys.path z 2.6!)
Rzeczywiście, nie naprawia tego dowiązania symbolicznego.
Jednak uruchom krótki skrypt, który print()
jest sys.path
i (przynajmniej w moim stosunkowo domyślnym ustawieniu) katalogi bibliotek 2.6 znajdują się na ścieżce, a katalogi 2.7 nie znajdują się na ścieżce. Nie ma też Current
dowiązania symbolicznego na ścieżce. Dlatego nie powinno stanowić problemu dla większości skryptów.
Możliwe jest jednak - nie przetestowałem - że Current
dowiązanie symboliczne jest używane przez jeden easy_install
lub pip
. To spowodowałoby problemy. Wydaje się, że to błąd, że dowiązanie symboliczne nie jest aktualizowane podczas aktualizacji wersji Pythona.
python
wskazaną/Library/Frameworks/Python.framework/Versions/Current/bin
. Oczywiście nie zaktualizowano go do wersji 2.6. Zastąpiłem więc zmienną PATH domyślną zmienną znalezioną w Google i teraz usunę MacPython z mojego systemu.