Skocz do zawartości

Zmiana Pythona 2.6 Na 3.1


NVM

Rekomendowane odpowiedzi

*

yum install python3

* jeśli chcesz sprawdzać, czy skrypt jest zgodny z różnymi wersjami pythona to wystarczy

python3 /dir/silnik.py

* lub jeśli tylko dla konkretnej wersji, to uwzględnij to w shabang

#!/usr/bin/env python3

* zmienianie tego globalnie chyba odpada, bo wszystkie narzędzia w systemie musiałyby być gotowe na 3

Odnośnik do komentarza
Udostępnij na innych stronach

Witam, właśnie uczę się Pythona. Jak zmienić w systemie, by korzystał z Pythona 3.1 na pewien czas, zamiast 2.6?

 

Ucz się 2.6 :) , oszczędzisz sobie czas. Do 3.1 nie ma jeszcze na tyle dużo oprogramowania, książek, tutoriali i po prostu kodu żeby się pobawić. Pythona 3 zostaw sobie na przyszłe wakacje.

 

Jak napisał borzole - gdybyś utworzył /usr/bin/python jako dowiązanie do /usr/bin/python3, to połowa Gnoma przestanie działać, to samo kreatorki systemowe i cała góra innego oprogramowania. Jeśli chcesz się bawić Pythonem 3, to fajnie, ale systemu w to nie mieszaj. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ucz się 2.6 :) , oszczędzisz sobie czas.

Oj, nie powiedział bym. W 2.6 obsługa kodowania znaków jest tak spieprzona maksymalnie, że nieraz pół dnia trzeba się namęczyć żeby coś wyprintować. Oczywiście nie mówię tu o najprostszych przypadkach, ale wystarczy przejrzeć google pod hasłem 'python unicode problem' żeby zobaczyć jak ogromna jest skala problemu. Nie wiem jak jest w 3, ale czytałem że to naprawili.

Odnośnik do komentarza
Udostępnij na innych stronach

#!/usr/bin/env python
#-*- coding:utf-8 -*-

 

print u"Zażółć gęśłą jaźń."

 

W Pythonie 3 wszystko co wpiszesz jest na utf-8, więc nie trzeba tak czarować, ale jedna linijka określające kodowanie i "u" przed stringami to jeszcze nie gigantyczny problem.

 

Zresztą są już narzędzia do automatyzacji i wykrywanie problemów z portowaniem swojego kodu z Pythona 2.x do 3. Dodatkowo w Pythonie 2.7 jest moduł future, który daje dostęp do nowych rzeczy.

Odnośnik do komentarza
Udostępnij na innych stronach

Na początku nauki pythona to jest gigantyczny problem. Ja zupełnie nie wiedziałem o co chodzi, bo sobie określałem kodowanie w drugiej linii, ale z kilkoma liniami odstępu i ...nie działa. No i w mordę jeża "o co chodzi?!" Chyba z siedem razy zaczynałem tego pythona, zanim się zorientowałem, że jak mówią druga linia to druga linia i koniec! Jak już to przeskoczyłem to poszło gładko.

 

Odnośnik do komentarza
Udostępnij na innych stronach

print u"Zażółć gęśłą jaźń."

 

W Pythonie 3 wszystko co wpiszesz jest na utf-8, więc nie trzeba tak czarować, ale jedna linijka określające kodowanie i "u" przed stringami to jeszcze nie gigantyczny problem.

 

Zresztą są już narzędzia do automatyzacji i wykrywanie problemów z portowaniem swojego kodu z Pythona 2.x do 3. Dodatkowo w Pythonie 2.7 jest moduł future, który daje dostęp do nowych rzeczy.

Tyle to wiem. Ale jak przychodzi do czytania ze strumieni (np. jakieś połączenie sieciowe), przetwarzania i wypisywania tych danych to dopiero się schody zaczynają. Nieraz mi się zdarzało, że print na terminal działał, ale już po przekierowaniu do pliku program się sypał na błędach w kodowaniu. Albo jak się łączyłem przez ssh i odpalałem zdalnie program to działał, a już przez putty się wywalał, znów na kodowaniu znaków. Powpisywanie kilku magicznych linijek w różnych miejscach potrafi pomóc w większości przypadków, ale tylko w większości.

Zresztą nawe taki "print u'żółć'" potrafi raz działać raz nie, zależnie od sposobu uruchomienia programu (przypadki jak wyżej).

Odnośnik do komentarza
Udostępnij na innych stronach

Borzole - dzięki za wyjaśnienie :) Obecnie uczę się Py3, bo Blender 2.6 będzie go obsługiwał, a jako, że F13 już ma tą możliwość zainstalowania Py3, to czemu by nie spróbować? ;)

 

Co zaś tyczy się nauki, w książce "Python 3. Kompletne wprowadzenie do programowania. Wydanie II" Marka Summerfielda jest wszystko fajnie wyjaśnione. Jako wielki plus mogę zaliczyć, że są tam też ćwiczenia pomagające utrwalić wiedzę z poszczególnych rozdziałów i zrozumieć ideę programowania w Pythonie. Generalnie - warta polecenia. Jak przeglądałem, to na takie rozmiary sporo rzeczy jest wyjaśnione, podobno wystarcza by tworzyć własne, porządne programy. A i tak wiadomo, że dokumentacja jest niezbędna, to na start ta książka całkiem pasi ;)

 

Pzdr,

NVM

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem czy dobrze rozumiem. Czyli jest coś takiego jak "alternatives" dla pyhona?

Nie, oczywiście nie chcę przestawiać ale chciałem sie pouczyć 3.x i dlatego pytam czy instalacja w ten sposób podany przez Ciebie nie updatuje mi pythona systemowego ;)

Odnośnik do komentarza
Udostępnij na innych stronach

* nie, to jest równoległa instalacja, która w żaden sposób nie ingeruje w domyślne ustawienia i cokolwiek chcesz zrobić w Python 3 to musisz wymusić np. w #! konkretną wersję

* "alternatives" możesz ustawić sobie dla wszystkiego co chcesz, jednak tutaj trzeba by wywrócić wszystko od podstaw, bo rpm instaluje python'a 2.6 do /usr/bin/python, czyli często używanej ścieżki. Można by użyć innej lokalizacji np. /bin/python i tam zrobić dowiązanie do alternatyw, ale to rzadko używana lokalizacja, więc lepiej tylko na własne potrzeby. Najlepiej było by użyć "env", ale nie wiem jak tak się ustala domyślne parametry :unsure:

Z drugiej strony

diff /usr/bin/python{,2.6}

nic nie zwraca, co ozn. że to są te same pliki, więc możesz wywalić /usr/bin/python i zamiast niego zrobić "alternatives" przełączane pomiędzy 2.6 a 3. Jeśli tylko wiesz co robisz to nic nie sknocisz.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...