Source: https://gometry.monicz.dev/get-started/installation/

# Installation

Install gometry from PyPI on CPython 3.11–3.15, including free-threaded CPython
3.14t and 3.15t.

**uv**

```bash
uv add gometry
```

**pip**

```bash
pip install gometry
```

## Requirements

| Requirement | Detail |
| --- | --- |
| Python | See the [supported runtimes and wheel families](https://gometry.monicz.dev/about/compatibility/#runtime-and-platform-matrix). |
| Runtime dependencies | **NumPy.** `typing-extensions>=4.15` is also installed when Python is below 3.15. |
| System libraries | No GEOS, GDAL, or system PROJ. |
| CPU | **x86\_64: x86-64-v2** (roughly 2009 or newer); **arm64: native arm64.** |

On x86\_64, importing a wheel checks detectable baseline features before loading
the native extension. If required features are missing, `ImportError` names
them and recommends an x86-64-v2-capable CPU. When the operating system cannot
report CPU features, the check does not block import.

Wheels bundle PROJ and its CRS resources. To add regional transformation grids,
see [Transformation resources](https://gometry.monicz.dev/guide/crs/#transformation-resources).
Linux wheels cover both glibc and musl systems, including Alpine with musl 1.2
or newer. Optional integrations can require source builds when their dependencies
do not provide matching wheels; see [optional integration compatibility](https://gometry.monicz.dev/about/compatibility/#optional-integration-matrix).

## Optional extras

Install the extras for the integrations you use. They are imported only when
needed.

| Extra | Purpose |
| --- | --- |
| `arrow` | [`to_arrow`](https://gometry.monicz.dev/api/geometry/geometry/#gometry.Geometry.to_arrow "to_arrow") / [`gm.from_arrow`](https://gometry.monicz.dev/api/toplevel/io-interop/#gometry.from_arrow "from_arrow") pyarrow materialization |
| `pandas` | concrete extension storage via [`arr.to_pandas()`](https://gometry.monicz.dev/api/geometry/geometryarray/#gometry.GeometryArray.to_pandas "to_pandas") / [`gm.from_pandas()`](https://gometry.monicz.dev/api/interop/#gometry.from_pandas "from_pandas") |
| `polars` | WKB/EWKB Binary Series via [`arr.to_polars()`](https://gometry.monicz.dev/api/geometry/geometryarray/#gometry.GeometryArray.to_polars "to_polars") / [`gm.from_polars()`](https://gometry.monicz.dev/api/interop/#gometry.from_polars "from_polars") |
| `geopandas` | vectorized `GeoSeries` / `GeoDataFrame` conversion |
| `viz` | [`gm.explore`](https://gometry.monicz.dev/api/interop/#gometry.explore "explore") + lonboard notebook previews |

For example, add PyArrow support with:

**uv**

```bash
uv add "gometry[arrow]"
```

**pip**

```bash
pip install "gometry[arrow]"
```

Geometry objects also expose Arrow PyCapsules without PyArrow installed.
[Arrow & storage](https://gometry.monicz.dev/ecosystem/arrow/) covers both interfaces.

## Next steps

- [Quickstart](https://gometry.monicz.dev/get-started/quickstart/) — find features within a station's service area.
- [Migrating to gometry](https://gometry.monicz.dev/migrating/) — adapt Shapely, pyproj, H3, S2,
  and rtree workflows.
