[Python] Rozwiązane Geany - wersje pythona

Awatar użytkownika
Nammi
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 23 kwie 2020, o 07:01
Płeć: Mężczyzna
wiek: 35
Lokalizacja: https://pl.casinority.com/kasyna-online/

[Python] Rozwiązane Geany - wersje pythona

Post autor: Nammi »

Chcę się nauczyć programowania w języku Python pod kontrolą Linux Mint 19.2.
Uruchomiłem konsolę i wydałem polecenie 'python'. Okazało się, że mam wersję 2.7.15.
Spróbowałem paru najprostszych poleceń typu 'print' i prosta arytmetyka. Działały zgodnie z opisami z różnych poradników.
Spróbowałem pisania skryptów *.py w programie 'Geany'. Również działały.
Postanowiłem zmienić wesję pythona na 3. Zrobiłem to poleceniem:

Kod: Zaznacz cały

sudo apt install python3
Po tej czynności okazało się, że Geany nadal integruje się z pythonem 2.7.15. Pod konsolą mogę mieć starego lub nowego pythona w zależności od tego czy wydam polecenie 'python' czy 'python3'.
Czy to jest normalny stan czy też coś spaprałem?
Czy można zrobić tak bym miał tylko nowego pythona i żeby Geany się z nim integrował?
Awatar użytkownika
Slup
Użytkownik
Użytkownik
Posty: 790
Rejestracja: 27 maja 2016, o 20:49
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 23 razy
Pomógł: 156 razy

Re: [Python] Rozwiązane Geany - wersje pythona

Post autor: Slup »

Nammi pisze: 23 kwie 2020, o 07:32 Czy to jest normalny stan czy też coś spaprałem?
Jest to normalny stan. Gdybyś coś zepsuł, nie musiałbyś o to pytać. Kilka objaśnień. Być może już o tym wiesz, ale na wszelki wypadek napiszę.

1. Czysto formalnie python w wersji \(\displaystyle{ 2.x}\) i python w wersjach \(\displaystyle{ 3.x}\) są różnymi językami o bardzo podobnej, ale jednak różnej składni oraz (co ważniejsze) różnią się one w działaniu wielu istotnych mechanizmów np. range w python3 jest generatorem, wszystkie klasy dziedziczą po klasie object itd.

2. Na Twoim systemie jest zainstalowany interpreter pythona w wersji 2.7.15. Wynika to z tego, że sporo oprogramowania użytkowego na Twoim systemie, zostało napisanych kilkanaście lat temu przy użyciu tego języka i w związku z tym interpreter tej wersji jest uruchamiany w tle, gdy to oprogramowanie jest wykorzystywane (przez użytkownika lub przez system).

3. W przypadku tych dystrybucji linuxa, które pochodzą od ubuntu, w systemie od razu zainstalowany jest również interpreter pythona w wersji \(\displaystyle{ 3.x}\). Kiedyś go usunąłem przy użyciu komendy:

Kod: Zaznacz cały

sudo apt-get remove python3
Jak się okazało, był to fatalny błąd, bo ta wersja pythona była niezbędna do działania GUI w systemie. Ponowne zainstalowanie przy użyciu

Kod: Zaznacz cały

sudo apt-get install python3
nie pomogło, bo zostały zerwane zależności pomiędzy paczkami w systemie. Podejrzewam, że podobny efekt przyniosłoby usunięcie pythona w wersji \(\displaystyle{ 2.7.15}\) na Twoim systemie.

Morał z tego jest taki, że używanie apt lub innego, sensownego menedżera paczek jest w pełni bezpieczne, o ile chcemy coś zainstalować, ale nie zawsze jest bezpieczne wtedy, gdy chcemy coś usunąć. Komendy:

Kod: Zaznacz cały

apt-get dist-upgrade, apt-get install <nazwa-paczki>, apt-get autoremove, apt-get autoclean

są bezpieczne - dwie ostatnie pozwalają automatycznie usunąć zbędne paczki. Natomiast należy zachować ostrożność przy usuwaniu paczek przy użyciu

Kod: Zaznacz cały

apt-get remove <nazwa-paczki>, apt-get purge <nazwa-paczki>
bo wtedy usuwamy ręcznie jakąś paczkę i może to mieć daleko idące konsekwencje dla systemu. Warto dodać, że naprawienie systemu najłatwiej osiąga się przez reinstalację.
Nammi pisze: 23 kwie 2020, o 07:32 Czy można zrobić tak bym miał tylko nowego pythona i żeby Geany się z nim integrował?
Geany to IDE czyli środowisko pracy dla programisty. Gdy to IDE było instalowane na systemie (przez Ciebie/kogoś innego/podczas instalacji systemu), najpewniej instalator przejrzał zmienną $PATH (to zmienna systemowa, która zawiera informacje na temat tego, gdzie znajdują się pliki wykonywalne na systemie - interpretery pythona to właśnie takie pliki), znalazł przy jej użyciu interpreter pythona w wersji \(\displaystyle{ 2.7}\) i zapisał jako domyślny interpreter dla Geany w jakimś pliku konfiguracyjnym tego IDE. Stąd wniosek, że możesz to zmienić modyfikując ten plik konfiguracyjny. Oczywiście sensowne IDE powinno umożliwiać zmianę tego pliku na poziomie graficznego interfejsu. Znalazłem odpowiednie rozwiązanie

Kod: Zaznacz cały

https://stackoverflow.com/questions/29105941/how-do-i-make-python3-the-default-python-in-geany
. Instrukcja:
1. Uruchom Geany.
2. Wybierz Build.
3. Wybierz Set Build Commands.
4. Wyszukaj python commands i w każdym polu do słowa python dopisz 3.
ODPOWIEDZ