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:
- (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.
- (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ů.
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.
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í.
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
(neboqgis-ltr-full
pro LTR verzi)
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__)"
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
.
Na další obrazovce zvolte určitě instalaci pip.
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.
Průběh instalace a hotovo.
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