Kategória: Python

Zmenené: 23. február 2017

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.

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:

  1. otvoriť stránku sťahovania Python
  2. zvoliť príslušnú verziu Python – momentálne to je Python 3.5.3
  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:)

prvé okno inštalátora

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:

ďalšie možnosti inštalátora

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:

pokročilé možnosti inštalácie

Tu som už neponechal všetko v predvolenom stave a mením nastavenie zvýraznených položiek:

  1. volím inštaláciu pre všetkých používateľov – zároveň zmení umiestnenie inštalácie
  2. volím predkopiláciu štandardných knižníc, čo by malo zrýchliť načítanie
  3. 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:

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á:

správa o inštalácii

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 (:

kontrola inštalácie

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…