Aktualizácia na Python 3.5 (win)
Rozhodol som sa vo windows (7) vyskúšať aktualizáciu Python 3.4 na 3.5. Je to super, netreba sa báť problémov a pokojne možno nainštalovať obe verzie súbežne, čo umožňuje správu balíkov pomocou pip v oboch verziách „naraz” – pretože po aktualizácii bude nutné do novej verzie znova nainštalovať všetky potrebné balíky.
Obsah článku
Poznámka
Toto je zároveň vhodný okamžik na prehodnotenie, či sú všetky tieto balíky ešte potrebné,v mojom prípade som do novej verzie inštaloval asi o 20 balíkov menej.
Inštalácia Python 3.5
Po zhromaždení zoznamu balíkov možno pristúpiť k samotnej inštalácii novej verzie Python, no ešte predtým je dobré si ujasniť niektoré podrobnosti o svojom operačnom systéme (OS), pretože si budete musieť zvoliť ten „správny“ inštalačný balík:
- typ OS – pretože popisujem aktualizáciu vo Windows, pravdepodobne to bude Windows
- architektúra OS – v súčasnosti asi väčšina bude 64b, tzn. x86-64
Keď už poznáte tieto podrobnosti o svojom OS, môžete stiahnuť inštalátor:
- otvoriť stránku sťahovania Python
- zvoliť príslušnú verziu Python – momentálne to je Python 3.5.3
- stiahnuť inštalátor pre svoj OS – v prípade 64b Windows sú
na výber tri možnosti:
- archív Windows x86-64 embeddable zip – vhodný v prípade pridávania prostredia Python do vlastného projektu, tento pravdepodobne nechcete
- inštalátor Windows x86-64 executable installer – veľký súbor, ktorý umožňuje inštaláciu bez ďalšieho prístupu na internet
- webový inštalátor Windows x86-64 web-based installer– menší súbor, ktorý všetky potrebné súčasti sťahuje až počas inštalácie
Tip
Ja som zvolil poslednú možnosť.
Po stiahnutí inštalátora ho možno spustiť, a to ako bežný používateľ alebo priamo ako správca, v oboch prípadoch sa objaví rovnaký dialóg (rozdiel je len v tom, kedy požiada o vyššie práva:)
Zvolil som pridanie Python do premennej PATH
, aby som na jeho spustenie
nemusel zadávať celú jeho cestu (pri odinštalovaní to korektne odstráni) a
pretože inštalujem Python pre všetkých používateľov, nevyhovuje mi predvolené
umiestnenie do používateľského profilu, preto som zvolil prispôsobenie inštalácie,
kde inštalátor poskytne na výber voliteľné možnosti:
Ponechal som inštaláciu všetkých možností, no zastavím sa pri poslednej – spúšťač Pythonu pre Windows). Tento spúšťač pomáha vo Windows pracovať s viacerými nainštalovanými verziami Python. Myslím, že ho využije len ten, kto z nejakého dôvodu potrebuje mať nainštalovaných viacero verzií Python-u. Neskôr popíšem, ako to funguje…
Po kliknutí na pokračovanie sa objavia ďalšie, pokročilé, možnosti:
Tu som už neponechal všetko v predvolenom stave a mením nastavenie zvýraznených položiek:
- volím inštaláciu pre všetkých používateľov – zároveň zmení umiestnenie inštalácie
- volím predkopiláciu štandardných knižníc, čo by malo zrýchliť načítanie
- upravujem cestu inštalácie na
C:\Python35
, aby som sa vyhol nešťastnej medzere v „Program Files“
Po kliknutí na „Install” konečne samotná inštalácia:
Kompilácia knižníc (ktorú som si zvolil) chvíľu trvá, ale inak to ide rýchlo a nakoniec sa objaví správa o inštalácii, v tomto prípade úspešná:
Kontrola inštalácie
Ako prvé po inštalácii kontrolujem, či boli do premennej PATH správne pridané adresáre:
>echo %PATH%
C:\Python35\Scripts\;C:\Python35\;C:\Python34\;C:\Python34\Scripts;...
Super, cesta k Python 3.5 je pridaná na začiatok, takže môžem spustiť samotný python:
>python
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Pozerám, čo to mám teraz nainštalované a vidím dve verzie Python (3.4 a 3.5), ako aj spomínaný spúšťač py (:
Skúšam spustiť Python 3.4:
>C:\Python34\python.exe
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Ako vidno, funguje.
Spúšťač py
Spúšťač py nie je žiadna novinka, existuje od Python 3.3, ale ja som si ho všimol až teraz. Pôvodne som bol pomerne skeptický, ale musím uznať, že neprávom.
Spúšťanie python
Skúšam spúšťač Python pre najnovšiu verziu:
>py
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Skúšam staršiu verziu:
>py -3.4
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Skúšam verziu 2.7 v Cygwin:
>py -2.7
Requested Python version (2.7) not installed
No, heuristika spúšťača zjavne inštaláciu v Cygwin nerozpozná, ale to by som asi chcel veľa…
Spúšťanie skriptu
Na otestovanie tohoto spúšťača so skriptami som vytvoril veľmi jednoduchý skript, ktorý len vypíše verziu Python, ktorou je skript spustený:
import sys
print (sys.version)
Skúsim ho spustiť:
>py checkver.py
3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)]
Skúsim definovať verziu:
>py -3.4 checkver.py
3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
>py -3.5 checkver.py
3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)]
Dokumentácia tvrdí, že možno používať rovnaký shebang ako v Linuxe, tak ho pridám:
#!/usr/bin/env python
import sys
print (sys.version)
a skúšam znova:
>py checkver.py
3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
Zjavne nejaká chyba, pretože má byť spustený posledná verzia, no po reštarte už to funguje ako má:
>py checkver.py
3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)]
Teraz možno v skriptoch definovať požadovanú verziu:
- bez shebang – spustí najnovšiu verziu
- #!/usr/bin/env python – spustí najnovšiu verziu
- #!/usr/bin/env python3.4 – spustí zadanú verziu
Správca balíkov pip
Python 3.5 ponúka nainštalovanie správcu pip, takže po inštalácii je príkaz dostupný:
>pip --version
pip 9.0.1 from c:\python35\lib\site-packages (python 3.5)
naďalej je dostupná aj verzia pip pre Python 3.4, len ju treba spúšťať s číslom verzie v mene:
>pip3.4 --version
pip 9.0.1 from c:\python34\lib\site-packages (python 3.4)
Po čerstvej inštalácii Python 3.5 sú nainštalované len dva balíky, a to
pip
a setuptools
, všetko ostatné treba znova nainštalovať.
Avšak, pretože možno spúšťať pip pre obe verzie,
možno si v jednom okne vypísať výpis balíkov z Python 3.4 a v druhom
postupne pridávať jeden za druhým do Python 3.5.
Záver
Inštalácia Python 3.5 je pomerne priamočiara. Jediný zádrheľ vidím v tom, že na inštaláciu do iného umiestnenia ako do používateľského adresára je nutné spustiť prispôsobenie inštalácia.
Môj pôvodne skeptický názor na spúšťač py som si opravil a považujem ho za užitočnú a praktickú vec. Jediné čo prináša je, že si treba zvyknúť spúšťať všetko nie cez príkaz python, ale treba používať príkaz py, čo však vyhovuje mojej lenivosti, pretože stačí menej úderov do klávesnice.
Posledná, pomerne nepohodlná vec, je správca balíkov pip. Na prvý pohľad je úžasne praktický, ale manuálna inštalácia všetkých balíkov po aktualizácii na novú hlavnú verziu Python a nemožnosť jednoducho zistiť závislosti balíkov jeho použiteľnosť prudko znižuje.
Úplne na záver spomeniem, že rovnakú procedúru som urobil vo svojom Linuxe pred dvomi dňami. Postup bol úplne odlišný a pretože používam zdrojovú (Funtoo) bolo potrebné prekompilovať hromadu balíkov (presne 197), a to aj také časovo náročné ako celý LibreOffice. Obe procedúry trvali približne rovnako dlho, s jedným podstatným rozdielom, v Linuxe som spustil príkaz a šiel spať, vo Windows som do toho niekoľko hodín ťukal a bádal, ktoré balíky už nepotrebujem…