gps3
Python 2.7-3.5 clients for gpsd
What it is and what it does
gps3 is a Python client library for GPSD, the GPS daemon. It provides two main interfaces: one that unpacks GPS data into Python dictionaries (gps3.py), and another that exposes the same data as object attributes (agps3.py). Both connect to a GPSD socket, request data streams, and parse JSON packets into usable position, time, and motion attributes. A third variant, agps3threaded, wraps the attribute interface in a daemon thread so data is continuously available without blocking.
The package is designed for developers building GPS-aware applications on systems running GPSD. It handles the socket protocol and JSON parsing, leaving you to work with latitude, longitude, altitude, speed, and course data. Example scripts and a KML-generation utility are included, though the package itself has not been maintained since 2016 and targets only Python 2.7 and 3.0–3.5.
Use it for:
- Build a real-time location tracker that polls GPSD and logs coordinates at regular intervals.
- Create a navigation app that reads GPS speed and course data from a local GPSD daemon.
- Generate live KML files for Google Earth from a GPS device stream using the gegps3 utility.
- Integrate GPS data into a threaded application using the pre-threaded AGPS3mechanism class.
- Parse GPSD JSON output into Python objects for analysis or storage in a location-aware service.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python clients to connect to a GPSD daemon and retrieve GPS location data as either dictionaries or object attributes, with optional threading support.
No, unless you are maintaining legacy Python 2.7 or 3.0–3.5 code that already depends on this package. The project is abandoned (last commit 2017), its target Python versions are out of support, and no maintenance or security updates are forthcoming. If you need a modern GPSD client, seek an actively maintained alternative.
Install
gps3 on PyPI
pip
pip install gps3uv
uv add gps3poetry
poetry add gps3Installing gps3
Before you install
Installation is straightforward with no runtime dependencies, but the package is abandoned—last commit was 2017-11-01 and no releases since 2016-09-04. It targets Python 2.7 and 3.0–3.5, versions now well out of support.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
from gps3 import gps3
gps_socket = gps3.GPSDSocket()
data_stream = gps3.DataStream()
gps_socket.connect()
gps_socket.watch()
for new_data in gps_socket:
if new_data:
data_stream.unpack(new_data)
print('Latitude = ', data_stream.TPV['lat'])
Requires a running GPSD daemon on localhost:2947 (or another configured host/port) to connect to.
Verify before relying
- Whether the package works reliably on Python 3.6 and later despite classifiers only listing up to 3.5.
- Current compatibility with modern GPSD versions and JSON protocol changes since 2017.
- Whether threading variant (agps3threaded) is stable for production use.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,631 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,803/month — #14,792 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gps3-0.33.3-py2.py3-none-any.whl
Keywords: gps, gpsd, developers
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pynmeagpsParses and generates NMEA 0183 GPS/GNSS…
permissive · top 15,000 on PyPI
pynmea2Parses and generates NMEA 0183 sentences from…
permissive · top 15,000 on PyPI
mygeotabMyGeotab is a Python client library for the…
permissive · top 15,000 on PyPI
pyrtcmParses RTCM3 differential GNSS protocol…
permissive · top 15,000 on PyPI
gpxpyParses, manipulates, and generates GPX files…
permissive · top 15,000 on PyPI
python-geohashpython-geohash encodes and decodes geographic…
unclear · top 15,000 on PyPI
pymap3dConverts between geographic and 3-D coordinate…
permissive · top 15,000 on PyPI
py-geohex3Converts between geographic coordinates…
permissive · top 15,000 on PyPI
pytileRetrieves information from Tile® Bluetooth…
permissive · top 15,000 on PyPI
suntimesCalculates sunrise and sunset times for any…
permissive · top 15,000 on PyPI