CLI for Unofficial Windows Geospatial library wheels
Project description
pipgeo: CLI for Unofficial Windows Geospatial Library Wheels
The amazing work of Christoph Gohlke is the source of all this. The unofficial windows binaries page at lfd is no longer maintained, but Christoph has created a dedicated GitHub repository with a subset of geospatial wheel assets. This tool is a straightforward CLI that can install binary wheels from the latest release assets with proper dependency ordering.
Requirements
- Python 3.11 or higher
- Windows OS only
The precompiled wheels are only available for Windows on Python 3.11+.
Installation
Installation is straightforward using pip. The tool automatically checks for new versions and informs you when updates are available.
pip install pipgeo
UV is automatically installed as a dependency for faster wheel installations.
Features
- Automatic dependency resolution and installation order
- Fast installations using UV (with automatic fallback to pip)
- Download-only mode for offline installation
- Version checking and upgrade notifications
- Support for all major geospatial packages
Supported Packages
Packages are installed in dependency order to ensure compatibility:
- GDAL - Geospatial Data Abstraction Library
- pyproj - Python interface to PROJ
- shapely - Manipulation and analysis of geometric objects
- cftime - Time-handling functionality
- Fiona - Vector data format support (requires GDAL)
- rasterio - Raster data access (requires GDAL)
- netCDF4 - Network Common Data Form support
- Rtree - Spatial indexing
- pyogrio - Vectorized spatial vector file format I/O
- Cartopy - Geospatial data processing (requires pyproj, shapely)
- basemap - Plotting 2D data on maps (requires pyproj)
Usage
pipgeo release
Lists all available packages from the latest release for your system configuration, displayed in recommended installation order.
pipgeo release
This shows which packages are available for your Python version and architecture.
pipgeo fetch
Fetches and installs a specific package from the latest release. Dependencies are automatically installed first if needed.
pipgeo fetch --lib gdal
Options:
--lib: Package name to install (required)--download-only: Download wheel without installing--output: Output directory for downloaded wheels (default: wheels)--quiet: Suppress non-essential output--use-pip: Force use of pip instead of UV
Examples:
# Install GDAL with automatic dependency handling
pipgeo fetch --lib gdal
# Download rasterio wheel only
pipgeo fetch --lib rasterio --download-only --output ./my-wheels
# Install using pip instead of UV
pipgeo fetch --lib shapely --use-pip
pipgeo sys
Installs all available geospatial packages from the release assets in the correct dependency order. This is the recommended way to set up a complete geospatial environment.
pipgeo sys
Options:
--download-only: Download all wheels without installing--output: Output directory for downloaded wheels (default: wheels)--quiet: Suppress non-essential output--use-pip: Force use of pip instead of UV
Examples:
# Install all packages (recommended)
pipgeo sys
# Download all wheels for offline installation
pipgeo sys --download-only --output ./wheels
# Install using pip instead of UV
pipgeo sys --use-pip
Performance
By default, pipgeo uses UV for installations, which is significantly faster than pip:
- 10-100x faster package installations
- Parallel downloads
- Better dependency resolution
- Efficient caching
If UV is not available or causes issues, pipgeo automatically falls back to pip. You can also force pip usage with the --use-pip flag.
Upgrade Guide
From v0.0.x to v0.1.0
Breaking Changes:
- Python 3.11+ now required (was 3.8+)
- UV is now the default installer (automatic fallback to pip)
- Flag changed:
--use-uvremoved, use--use-pipto force pip
Benefits:
- Much faster installations with UV
- Better dependency handling
- Modern Python features and type hints
- Cleaner package structure
To upgrade:
pip install --upgrade pipgeo
If you're on Python 3.8-3.10, you'll need to either:
- Upgrade to Python 3.11+, or
- Continue using pipgeo v0.0.7:
pip install "pipgeo<0.1.0"
Troubleshooting
UV Installation Issues
If UV fails to install a package, pipgeo automatically falls back to pip. You can also force pip usage:
pipgeo sys --use-pip
Package Not Found
Make sure you're running the latest version of pipgeo:
pip install --upgrade pipgeo
Then check available packages:
pipgeo release
Python Version Issues
This tool requires Python 3.11 or higher. Check your version:
python --version
Development
Building from Source
git clone https://github.com/samapriya/pipgeo.git
cd pipgeo
pip install -e .
Changelog
v0.1.0
- BREAKING: Python 3.11+ now required
- UV is now the default installer with automatic fallback to pip
- Migrated to modern pyproject.toml configuration
- Added proper dependency ordering for all packages
- Improved error handling and user feedback
- Added
--use-pipflag to force pip usage - Removed unnecessary dependencies (natsort, setuptools from runtime)
- Updated to use SPDX license identifiers
- Enhanced CI/CD with UV support and linting
- Better type hints using Python 3.11+ features
v0.0.7
- Added download-only mode and custom output directory support with
--download-onlyand--outputflags - Improved error handling with retries for HTTP requests and better exception handling
- Refactored code structure with type hints, dataclasses, and proper module organization
- Added better dependency management and version checking with more robust comparison logic
v0.0.6
- Release checker tool now checks if packages exist for installed Python version in latest release
v0.0.5
- Release tool now prints available release packages and version number
- Improved PyPI version check functionality
- Fetch tool auto upgrades to latest version if new version is available in release
v0.0.4
- Added dependency check from dependency tree
- Dependencies also installed using pipgeo
v0.0.3
- Updated readme with instructions
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Credits
All wheels are built and maintained by Christoph Gohlke in the geospatial.whl repository.
Citation
If you use this tool in your research, please cite:
@software{pipgeo,
author = {Roy, Samapriya},
title = {pipgeo: CLI for Unofficial Windows Geospatial Library Wheels},
year = {2024},
url = {https://github.com/samapriya/pipgeo}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipgeo-0.1.0.tar.gz.
File metadata
- Download URL: pipgeo-0.1.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d73c9c78c89d98de16e48f9a73f8eb7960cc5fc2dbf3e54b1a8f9e7e966384b
|
|
| MD5 |
b5a10b75cf6e59f97c0a9fb5b2c79657
|
|
| BLAKE2b-256 |
4586306d7b6d91070c2e99e382515b3cb35a10c098f6d701d683199fa2129b7e
|
File details
Details for the file pipgeo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pipgeo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1da60f25565df407d9f8f55b8d2db6c717c5b5e7147061a3684e8f25f72d9b4
|
|
| MD5 |
083ec2f7bbaa8f1f179aa998d5f286a9
|
|
| BLAKE2b-256 |
9e4cb114a4936154bd5934aab93ed9749e74400462230317e296a079a1574e23
|