Instalace na operační systému MS Windows

Tato kapitola by vám měla pomoci nastavit použitelné prostředí pro zpracování prostorových dat pomocí open source knihoven v jazyce Python na operačním systému MS Windows.

Poznámka

Kurzy GISMentors probíhají na operačním systému Linux a máme pro to řadu dobrých důvodů: lepší provázanost knihoven, stabilita, možnost snáze něco „opravit“. Platforma MS Windows pro nás není domácí. Navíc není pro vývoj programů pro práci s prostorovými daty s využitím open source knihoven úplně ideální, především pro svou roztříštěnost a nestabilitu.

Na operačním systému MS Windows máme (minimálně) dvě prostředí/možnosti, v jakých můžeme Python provozovat:

  1. (preferovaná) Z distribuce OSGeo4W - což je sada programů s otevřeným zdrojovým kódem pro operační systém MS Windows. Všechny programy z této distribuce spolu navzájem „mluví“, bohužel ale OSGeo4W neobsahuje (nebo nejsou aktuální) všechny knihovny, které v tomto kurzu doporučujeme. Situace se v budoucnu ale může změnit. Návod.
  2. (alternativní) Nativní distribuce Pythonu ze stránek http://python.org. Do tohoto prostředí lze doinstalovat všechny knihovny používané v tomto kurzu, ale jejich zapojení např. do QGIS nebo GRASS GIS bude velmi obtížné až nemožné. Návod.

Poznámka

Je „zvykem“, že na MS Windows si všechny programy s sebou instalují všechny potřebné knihovny. Takže pokud máte v systému Esri ArcGIS, máte i další interní interpret Pythonu zabalený spolu s ArcGISem. Většinou ale nebudete vědět „kde v systému je“ a jaké verze. Navíc integrace s ostatními (open source) knihovnami bude ještě obtížnější.

První možnost (preferovaná): Instalace OSGeo4W

OSGeo4W je síťový instalátor otevřeného GIS softwaru pro operační systém MS Windows. Instalace probíhá tak, že stáhneme neprve instalátor osgeo4w-setup.exe), který nás po spuštění provede výběrem požadovaných balíčků a po odsouhlasení je sám stáhne a nainstaluje.

Poznámka

OSGeo4W nainstaluje na počítač svoji vlastní verzi Pythonu. Pokud máte Python již nainstalován, budete mít na stroji jeho více verzí vedle sebe. Což je ale ve světě Windows běžné. Softwary, které Python používají, si často instalují vlastní verze a nepoužívají systémově nainstalovaný Python (pokud existuje). Pokud si nainstalujete i další software jako je QGIS či GRASS GIS a další, tak minimálně tento software bude v rámci OSGeo4W instalace sdílet jednu společnou verzi Pythonu.

Při instalaci vyberte pokročilou volbu - Advanced Install - po zvolení zdrojových serverů a cílového adresáře, se dostanete až k výběru jednotlivých balíčků.

../../_images/install-windows-1.png

Obr. 13 Spuštění OSGeo4W instalátoru, volba Advanced Install

Před volbou softwarových balíčků k instalaci ještě zvolte server, ze kterého se budou balíčky stahovány. Kromě oficiálního http://download.osgeo.org jsou dispozici i další servery, které mohou mít rychlejší odezvu.

../../_images/install-windows-1a.png

Obr. 14 Volba serveru pro stahování instalačních balíčků.

Další nastavení nechme ve výchozím stavu. V sekci Select Packages pomocí vyhledávání můžete jednotlivé balíčky najít a poklepáním myší na řádek se volba ze Skip změní na číslo verze, kterou lze nainstalovat (někdy je dostupných verzí víc).

Po potvrzení se balíčky stáhnou a nainstalují.

../../_images/install-windows-2.png

Obr. 15 Výběr softwarových balíčků, v tomto případě python3-gdal.

V našem případě najděte a nainstalujte následující balíčky:

  • python3-pip
  • python3-gdal
  • python3-owslib
  • python3-fiona
  • python3-shapely
  • python3-rasterio

Tip

Nainstalovat celé prostředí lze jednoduše v jednom kroku přímo z příkazové řádky MS Windows. Otevřte příkazový řádek Windows jako admistrátor, přepněte se do adresáře (příkaz cd), kam jste stáhli instálator OSGeo4W a spusťte následující příkaz.

osgeo4w-setup.exe -g -k -a x86_64 -R C:\OSGeo4W -s http://osgeo4w-oslandia.com/osgeo4w -q ^
-P python3-pip,python3-gdal,python3-owslib,qgis-ltr-full,python3-fiona,python3-shapely,python3-rasterio

Poznámka

A samozřejmě můžete i nainstalovat desktopový program QGIS (není podmínkou pro toto školení).

  • qgis-full (nebo qgis-ltr-full pro LTR verzi)
../../_images/install-windows-3.png

Obr. 16 Sledování průběhu instalace

Pro otestování prostředí otevřeme OSGeo4W Shell. Před vstupem do interpreta jazyka Python, musíme spustit skript p3_env, který nastaví proměnné prostředí pro Python 3.

py3_env
python3 -c "from osgeo import gdal; print(gdal.__version__)"
../../_images/osgeo4w-run.png

Poznámka

Pokud narazíte na problém s instalací či nefunkčností knihoven Fiona, Shapely či Rasterio, tak pokračujte podle návodu níže.

Potřebujeme stáhnout a nainstalovat knihovny, které v distribuci OSGeo4W nejsou a nebo nefungují, zejména balíčky

Ze stránek Unofficial Windows Binaries for Python Extension Packages stáhneme pro knihovny Fiona, Shapely a Rasterio soubory ve formátu Wheel - je důležité, aby verze Pythonu, pro kterou byly balíky připraveny, byla stejná jako verze Pythonu v OSGeo4W. Proto spustíme OSGeo4W Shell a zjistíme verzi:

C:\> python3 --version

Python 3.7.0

V našem případě tedy stáhneme např. soubory

  • rasterio‑1.2.1‑cp37‑cp37m‑win_amd64.whl
  • Fiona‑1.8.18‑cp37‑cp37m‑win_amd64.whl
  • Shapely‑1.7.1‑cp37‑cp37m‑win_amd64.whl

A doinstalujeme tyto balíky pomocí pip v prostředí OSGeo4W Shell jako správce. Nezapomeňte nejprve nastavit prostředí pro Python 3 spuštěním skriptu py3_env.

py3_env

cd C:\Users\Administrator\Downloads

python3 -m pip install Fiona-1.8.18-cp37-cp37m-win_amd64.whl
python3 -m pip install rasterio-1.2.1-cp37-cp37m-win_amd64.whl
python3 -m pip install Shapely-1.7.1-cp37-cp37m-win_amd64.whl

Následně můžeme instalaci vyzkoušet Otestování instalace.

Druhá možnost (alternativní): Instalace nativního interpretu CPython

Důležité

Pokud budete používat pouze nativní interpret CPython (mimo prostředí OSGeo4W), nebudete moci (nebo velmi obtížně) kombinovat knihovny s QGIS, GRASS GIS a dalšími.

Ze stránek https://www.python.org/downloads/windows/ stáhněte aktuální verzi jazyka Python s označením 3.x - použijte 64bit verzi - tedy např. Windows x86-64 executable installer.

Poznámka

Odkazy výše ukazují přímo na verzi interpretu 3.8.1! Ujistěte se, že stahujete aktuální verzi intepretu.

Spusťte instalátor - v administrátorském režimu - a nastavte Customize installation. Zaškrtněte přidání Python do proměnné PATH.

../../_images/install-windows-cpython-1.png

Obr. 17 Spuštění instalátoru, volba Customize installation

Na další obrazovce zvolte určitě instalaci pip.

../../_images/install-windows-cpython-2.png

Obr. 18 Další volby

V dalším kroku se ujistěte, že budete instalovat Python pro „všechny uživatele“ (Install for all users). Python se tak nainstaluje do kořenového adresáře na disk C:\Program Files\Python38 a ne pouze kamsi do uživatelských složek.

../../_images/install-windows-cpython-3.png

Obr. 19 Sledování průběhu instalace

Průběh instalace a hotovo.

../../_images/install-windows-cpython-4.png

Obr. 20 Sledování průběhu instalace

Po instalaci a spuštění příkazové řádky (cmd) můžete Python sputit přímo.

V dalším kroce je potřeba do prostředí doinstalovat námi požadované knihovny.

Ze stránek Unofficial Windows Binaries for Python Extension Packages stáhneme knihovny GDAL, Fiona, Shapely, Rasterio a OWSLib soubory ve formátu Wheel. Vždy pro danou verzi Pythonu (v tomto dokumentu používáme 3.8) a 64bit platformu (amd64).

Poté otevřeme příkazovou řádku Windows jako správce a doinstalujeme požadované knihovny, například:

pip install Downloads\Shapely-1.7.0-cp38-cp38-win32.whl
pip install Downloads\Fiona-1.8.13-cp38-cp38-win32.whl
...

Instalace Rasterio

Před vlastní instalací knihovny Rasterio do prostředí CPython na Windows musíme instalovat ručně balík Numpy a Microsoft Visual Studio 2015 a mladší, nejlépe ke stažení z http://go.microsoft.com/fwlink/?LinkId=691126&fixForIE=.exe.

pip install Downloads\numpy‑1.18.1+mkl‑cp38‑cp38‑win_amd64.whl

Potom už můžeme instalovat rasterio

pip install Downloads\rasterio‑1.1.2‑cp38‑cp38‑win_amd64.whl

Následně můžeme instalaci vyzkoušet Otestování instalace.

Otestování instalace

Otevřte OSGeo4W Shell (anebo příkazový řádek Windows v případě nativního interpretu CPython) jako správce a doinstalujte pytest (v případě OSGeo4W Shell ještě nastavíme prostředí pro Python 3 pomocí py3_env).

py3_env
python3 -m pip install pytest

Stáhněte repositář geopython-zacatecnik pomocí git anebo přímo jako zip soubor a rozbalte.

Otevřte OSGeo4W Shell (anebo příkazový řádek Windows v případě nativního interpretu CPython) jako běžný uživatel a vstupte do rozbalené složky, např.:

cd C:\Users\user\Downloads\geopython-zacatecnik-master\geopython-zacatecnik-master

Poznámka

Nejedná se překlep. Zip obsahuje složku geopython-zacatecnik-master, což se pod Windows projeví vnořením do složky geopython-zacatecnik-master (odpovídající názvu zip souboru). Následující příkaz je podstatné spustit ze složky, která obsahuje podsložku tests. To můžete ověřit příkazem dir.

Testy spustíte následujícím příkazem (v případě OSGeo4W Shell ještě nastavíme prostředí pro Python 3 pomocí py3_env).

py3_env
python3 -m pytest tests
../../_images/pytest-windows.png

Obr. 21 Spuštění testů pod Windows.