{ "cells": [ { "cell_type": "markdown", "id": "1f5f68f6-7fa9-4357-a92a-b98537e4e566", "metadata": {}, "source": [ "# Python environments or how to survive to your journey in the geodata space" ] }, { "cell_type": "markdown", "id": "67d99e8c-2e01-4670-ab60-d6cc0afb7027", "metadata": {}, "source": [ "**Python** is _currently_ the election language for the data science (including the geospatial software ecosystem, both FOSS and proprietary). In respect to other languages it is has a long history of _breaking changes_ with a development cycle of not more than **5 years** per version. From time to time you can find changes in tooling and packages, or even big turns in the major versions (e.g. Python 2 >> Python 3 required a 10 years roadmap until the end of 2.* series, with deprecation of a lot of packages and changes in syntax)." ] }, { "cell_type": "markdown", "id": "73e78540-4445-4676-9a28-bcec07c36c1a", "metadata": {}, "source": [ "Main aspects to consider in your workflow:\n", "\n", "* Multiple platforms (operating systems) involve different constraints.\n", "* Many packages (the most performant) are not _native_ i.e. are not written (completely) in Python. That includes the Big Ones (numpy, pandas, xarray, etc.).\n", "* The so-called _extension_ packages are based on external libraries written in C/C++.\n", "* Multiple toolchains have been introduced to simplify the workflow on some platforms, but the most advanced use could be _tricky_.\n", "* Documentation is not always complete or articulated enough. In some cases sources or some users forum are the last resort." ] }, { "cell_type": "code", "execution_count": 3, "id": "ae83751b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 3, "metadata": { "image/png": { "height": 800, "width": 800 } }, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(\"../images/pythonrels.png\" , width = 800, height = 800)" ] }, { "cell_type": "markdown", "id": "0f9f9e25-8f7d-4bea-bec5-a63198890fba", "metadata": {}, "source": [ "## A brief list of distilled suggestions and considerations" ] }, { "cell_type": "markdown", "id": "3d440624-d239-447b-afb4-30926d3076a1", "metadata": {}, "source": [ "* Linux and other platforms have a single _system Python_ with pre-built packages available in the distribution archive. They also have a per-release tool chain, including a C/C++ compiler and standard libraries set." ] }, { "cell_type": "markdown", "id": "a6605b31-d98f-4d79-b917-6b5ec7e1726e", "metadata": {}, "source": [ "* **DON'T** try to change system versions, you can get a not functional system which could require a total reinstall." ] }, { "cell_type": "markdown", "id": "dbf690da-b3a8-4ac5-876b-82e1350e5dac", "metadata": {}, "source": [ "* With the right tools any user can install and use multiple Python versions without breaking the system. See [PyEnv](https://realpython.com/intro-to-pyenv/) and [Anaconda](https://anaconda.org/anaconda/python)." ] }, { "cell_type": "markdown", "id": "4268c0ea-34fe-4c9f-afcf-dbed54ff8ddf", "metadata": {}, "source": [ "* With the right tools any user can install multiple packages versions to use alternatively. See [venv](https://docs.python.org/3/library/venv.html) environments and Anaconda." ] }, { "cell_type": "markdown", "id": "3dac4845-9a4e-4177-837b-9eb55aa4df76", "metadata": {}, "source": [ "* Unfortunately you CAN'T use multiple versions of the same package at the same time. I'm very sorry, guys :-)" ] }, { "cell_type": "markdown", "id": "35898d85-96e2-4604-bf3a-8cafeb034c0e", "metadata": {}, "source": [ "* All the previous stuff _in general_ do not require admin privileges, so you could use them within scientific clusters too." ] }, { "cell_type": "markdown", "id": "846d0530-e447-4ae8-80ed-84dc336b5964", "metadata": {}, "source": [ "* All the previous stuff COULD be combined with the use of _virtual machines_ and/or _containers_. See [Docker](https://www.docker.com/) or [Podman](https://podman.io/). It is not mandatory, but in some cases they can help." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }