Jak mogę zaktualizować domyślną instalację Pythona / naprawić moją $ PATH na Mac OS X 10.6.7?

8

Wiem, że to pytanie zostało już wcześniej zadane na tej stronie i znalazłem kilka godnych dyskusji, ale rozwiązania, które znalazłem i próbowałem, nie działają. Chcę nauczyć się języka Python i mam problem z jego prawidłową konfiguracją na komputerze Mac. Używam OS X 10.6.7.

Pobrałem instalator Python 3.2 z python.org i zainstalowałem go /Library/Frameworks/Python.framework/Versions/3.2/bin. Na razie jest to w porządku, ponieważ mogę po prostu używać IDLE do programowania. Aby użyć 3.2 z wiersza poleceń python, próbowałem zmienić kolejność mojej $PATHzmiennej. Tak to ~/.profilewygląda:

PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Jednak pythonnadal uruchamia 2.6.1:

steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ . ./.profile
steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ 

Po dłuższej walce z tym zdecydowałem, że powinienem po prostu odinstalować 3.2 i spróbować zaktualizować systemową instalację Pythona. Nie jestem pewien, jak to zrobić poprawnie, więc muszę uzyskać wersję 3.2 do pracy z wierszem poleceń lub zaktualizować wersję 2.6.1.

Steven Zezulak
źródło

Odpowiedzi:

5

Właśnie rozwiązałem ten problem, instalując Python 3.2.2 na moim Mac OS X Lion, więc pomyślałem, że opublikuję, jak to zrobiłem, w nadziei, że ktoś może mu pomóc.

Po pierwsze, zgadzam się z shadesandcolour w tym, że nie powinieneś modyfikować domyślnej kopii Pythona dostarczonej z twoim komputerem Mac, ponieważ mogą istnieć skrypty, które mogą nie działać poprawnie po uruchomieniu przy użyciu interpretera Python 3.0+. Powiedziawszy to, aby zainstalować najnowszą wersję Pythona (3.2.2 w momencie pisania tego postu), należy najpierw pobrać instalator Pythona z oficjalnej strony internetowej. Zainstaluj jak zwykle. Uruchom plik „Update Shell Profile.command” w folderze / Applications / Python (ver).

Po zainstalowaniu Pythona musisz edytować swoją ścieżkę, wpisując „sudo nano / etc / paths” w wierszu polecenia. Następnie wprowadź hasło po wyświetleniu monitu. Następnie wystarczy „wyciąć” linię / usr / local / bin i wkleić ją PRZED wystąpieniem „/ usr / bin”. Zapisz plik, zamknij wszystkie otwarte terminale i uruchom nową instancję terminala. Teraz, gdy wpiszesz „python” w wierszu poleceń, powłoka najpierw przeszuka katalog / usr / local / bin i uruchomi najnowszą kopię Pythona.

lightalchemist
źródło
+1, odkąd próbuję to rozgryźć przez cały dzień. Rzeczywiście, w systemie Snow Leopard, jeśli ustawienie PATH w konfiguracji powłoki nie działa, edytowanie /etc/pathzgodnie z sugestią działa idealnie. Dla mnie problemem było rozpoznanie przez emacsa zarówno graficznego, jak i terminalowego, że chcę użyć niestandardowej instalacji Pythona. Dzięki za wskazówkę!
jrhorn424
to działało gdybym także cd /usr/local/bini cp python3.7 pythoni ponownie mój terminal.
openwonk
1

Z mojego doświadczenia wynika, że ​​używanie dowiązań symbolicznych wraz z odpowiednio uporządkowaną ścieżką PATH jest sposobem na współistnienie wielu wersji Pythona w OS X lub dowolnym innym systemie nix, o którym mogę myśleć. OS X jest trochę głupi, ale działa w ten sam sposób.

Najpierw uzyskaj pełny obraz, uruchamiając następujące polecenia:

which python

Następnie:

ls -la /usr/bin/python*

i porównaj z:

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

Zobacz, gdzie wskazują dowiązania symboliczne.

W oparciu o opublikowaną ŚCIEŻKĘ, ponieważ / usr / bin występuje po / usr / local / bin i innych, których prawdopodobnie używasz interpretera Pythona:

/usr/bin/python

Jeśli zainstalowałeś Python 3.0, prawdopodobnie będzie działał jako:

/usr/local/bin/python

Teraz, gdy wiesz, co wskazuje gdzie i jaki interpreter jest ładowany ze ŚCIEŻKI, możesz wprowadzić odpowiednie zmiany do ŚCIEŻKI i / lub dowiązań symbolicznych. Następnie możesz użyć tych samych technik, aby potwierdzić prawidłowe zmiany.

Aby uzyskać więcej dobrych informacji na temat instalacji Pythona na macOS, zobacz: zanurzenie się w python3 i farmdev .

Somantra
źródło
/usr/local/bin/pythonnie istnieje, ale istnieje /usr/local/bin/python3. python3 --versiondaje moją instalację (3.2). Czy mogę po prostu zmienić nazwę tego dowiązania symbolicznego, aby pythonnie musiałem wpisywać 3?
Steven Zezulak
Jeśli twoja ŚCIEŻKA jest poprawnie zamówiona (/ usr / local / bin występuje po / usr / bin), możesz po prostu utworzyć dowiązanie symboliczne, które to robi.
Somantra
1
Ale jeśli / usr / bin pojawia się po / usr / local / bin, to w dalszym ciągu ładuje systemowego pytona (/ usr / bin / python).
Somantra
0

Może jeśli zainstalujesz Python za pośrednictwem MacPorts, zaktualizuje on wersję systemową. Właściwie nie podejrzewam, ponieważ wydaje mi się to trochę ryzykowne. Możesz jednak sprawdzić, co robi MacPorts, gdy instalujesz z nim Python.

James T. Snell
źródło
0

Zadałem komuś to pytanie i odradzono mi zmianę domyślnej wersji Pythona, ponieważ niektóre elementy działania mogą zależeć od tego, gdzie jest wersja 2.7. Biorąc to pod uwagę, nie jest o wiele więcej pracy, aby umieścić polecenie python3 na swojej ścieżce. Właśnie to robię w tej chwili i wydaje się w porządku.

bringel
źródło
0

Jeśli używałeś instalatora, twoje python znajduje się w / usr / local / bin / python3. Ścieżki również powinny być aktualizowane automatycznie, aby stały się dostępne jak python3w twoim terminalu. Stare pythonjest nadal dostępne i może być używane przez inne systemy.

Dzielenie przez zero
źródło