Programování v GIS 2
2026-03-23
.py soubor s funkcemi, proměnnými či objektyPI či DEFAULT_COLORutils.py ze cvičení (a ukázek na webu)__init__.pysys.path, ty lze editovat např. skrze systémovou proměnnou PYTHONPATHconda install uv nebo pip install uvpyproject.toml[project]
name = "balicekpgis2"
version = "0.1.0"
description = "Testovací balíček pro předmět PGIS2"
authors = [
{name = "autor", email = "autor@email.cz"}
]
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"gdal>=3.10.0",
"requests>=2.32.3"
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"pyproject.toml v sekci dependenciesNote
Protože používáme Conda pro správu prostředí (kvůli GDAL a dalším C závislostem), nepoužíváme uv sync – ten vytváří vlastní virtuální prostředí. Místo toho instalujeme do conda prostředí přímo.
pyproject.toml úprava přidáním dat k balíčkuPath.cwd() – balíček může být nainstalovaný kdekolivPath(__file__).parent pro zjištění umístění aktuálního moduluimport pathlib
# adresář s datovými soubory balíčku
_DATA_DIR = pathlib.Path(__file__).parent / "data"
def data_file_path(filename: str) -> pathlib.Path:
"""Vrátí cestu k datovému souboru v balíčku."""
path = _DATA_DIR / filename
if not path.exists():
raise FileNotFoundError(f"Data file not found: {path}")
return path
def read_text_file(filename: str) -> str:
"""Načte obsah textového souboru z datového adresáře balíčku."""
path = data_file_path(filename)
return path.read_text(encoding="utf-8")Pozor
Cesty konstruované pomocí Path.cwd() nebo pevně zapsané cesty fungují pouze na vašem počítači. Balíček musí fungovat na jakémkoliv systému proto vždy relativně vůči __file__.
MAJOR.MINOR.PATCH)
MAJOR – nekompatibilní změny API (např. 1.0.0 2.0.0)MINOR – nová funkcionalita, zpětně kompatibilní (např. 1.0.0 1.1.0)PATCH – opravy chyb (např. 1.0.0 1.0.1)0.x.y signalizuje počáteční vývoj – API se může měnitpyproject.toml v sekci [project]tests/ je součástí struktury balíčkupytest (v aktivním conda prostředí)-e = editable, balíček se “odkazuje” na zdrojový kód místo kopírovánípipdist/ s balíčkem.tar.gz a .whl.whl souboru pomocí uv pip install nazev_balicku*.whl__init__.py__init__.pyfrom .modul import fn)__init__.pyimport nazev_balicku – zpřístupní vše z __init__.py| uv | poetry | |
|---|---|---|
| Rychlost | Extrémně rychlý (Rust) | Pomalý (Python) |
pyproject.toml |
Standardní PEP 621 | Proprietární sekce [tool.poetry] |
| Build backend | Libovolný (hatchling, setuptools) | Vlastní (poetry-core) |
| Správa prostředí | uv pip do existujícího env |
Vlastní virtualenv |
pyproject.toml jako standardní konfigurační soubor (PEP 621)Materiály dostupné: https://jancaha.github.io/vsb-vyuka/