Skip to content

Instantly share code, notes, and snippets.

@LtGlahn
Last active November 16, 2021 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LtGlahn/03c6103dee0606c62219a63108533eae to your computer and use it in GitHub Desktop.
Save LtGlahn/03c6103dee0606c62219a63108533eae to your computer and use it in GitHub Desktop.
Isolere python GIS-programvare i et separat kjøremiljø

En del python GIS-programvare er basert på C-rutiner kompilert for og med python-bindinger. Installasjon av disse C-baserte pythonpakkene kan være litt trælete, og gi versjonskonflikter med andre python-pakker du ønsker å bruke. Anbefalingen er derfor å isolere det du trenger til egne python environments. Når ulike python-pakker finnes i separate kjøremiljø så minimerer du sjangsen for versjonskonflikt - og hvis det verste skulle skje så har du et utrolig mye bedre utgangspunkt for å rydde opp. Å lage et nytt kjøremiljø med ny installasjon av det du trenger er enkelt, og løser de fleste konflikter - mens det å rydde opp i versjonskonflikter på eksisterende installasjon definitivt ikke er noe for uøvde.

Slike kjøremiljø kan lages på flere måter, men fremgangsmåten vist her er det som er gjengs praksis innafor Data science - miljøet.

Steg 0 - bruk Anaconda python installasjon

Last ned og installer Python "individual edition" fra Anaconda.

Opprett nytt environment

Vi ønsker selvsagt å bruke nyeste versjon av GIS-programvaren. Conda har gjort en fantastisk jobb med å tilby MASSE god programvare i distribusjonslister kalt "channel". Standard "channel" henger typisk litt etter på GIS-programvare (men er mer gjennomtestet, og har litt mindre risiko for versjonskonflikter. Men versjonskonflikter er uansett ikke noe problem for oss; hele grunnen til å lage separate "environments" er jo å isolere en sandkasse med akkurat den programvaren vi trenger.)

Distribusjonslisten vi ønsker å bruke heter conda-forge.

Enklest oppskrift: Etter å ha prøvd ut Anaconda navigator vil jeg påstå det enkleste er å kjøre disse kommandoene i terminalvindu. Start Anaconda promptvia Start-menyen. Kopier og lim inn en linje av gangen. Merk at den tredje conda-kommandoen er laaaaaaang, pass på at den ikke brytes med linjeskift før du limer den inn.

Og med mindre du har en rask maskin så går dette treeeeeeeeeeegt... vi snakker timesvis på gamle PC'er, kanskje ned mot 20 minutter på rask hardware. Etterpå har dere et nytt environment kalt kulegeoting

conda config --add channels conda-forge
conda config --set channel_priority strict
conda create -n kulegeoting bokeh cartopy dask fiona geojson geopandas geoviews geoviews-core holoviews hvplot numpy openpyxl pandas pandoc pandocfilters postgresql proj pyproj shapely xlrd xlsxwriter xmltodict ipykernel ipympl nb_conda_kernels nodejs

Når du har skapt dette kjøremiljøet så må du aktivere det før du starter python

conda activate kulegeoting
ipython 

Kjøremiljøet skal også være tilgjengelig for andre applikasjoner som jupyter notebooks og VS code.

Liker du ikke kommandolinja? Bruk Conda navigator

Med Conda Navigator. Oppskriften for å legge til riktig "channel" (conda forge distribusjonsliste) står helt nederst her: https://conda-forge.org/docs/user/introduction.html#display-conda-forge-packages-in-anaconda-navigator . Lengre opp på samme side står generelle tips om "anaconda navigator". I prinsippet skal det bare være å klikke seg gjennom, og dernest følge oppskriften for Create environment og så installere hvert av programmene på listen over. Når kjøremiljet er opprettet så velger du kjøremiljø for den python-applikasjonen du skal kjøre (notebooks, spyder, +++).

Jeg er litt på tynn is med hvor du klikker hva og sånn, ettersom jeg synes dette ble fiklete i forhold til kommandolinja, men jeg har prøvd det og det funker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment