{"library":"pgeocode","title":"pgeocode","description":"pgeocode is a Python library for high-performance off-line querying of GPS coordinates, region name, and municipality name from postal codes. It also supports distance calculations between postal codes. The library utilizes the GeoNames database, covering 83 countries. The current version is 0.5.0. It has an active maintenance schedule with new releases that increment with feature additions and bug fixes.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install pgeocode"],"cli":null},"imports":["import pgeocode","from pgeocode import Nominatim","from pgeocode import GeoDistance"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pgeocode\nimport os\n\n# Set a temporary data directory for demonstration if desired\n# os.environ['PGEOCODE_DATA_DIR'] = '/tmp/pgeocode_data'\n\n# Initialize Nominatim for a specific country (e.g., France)\nnomi = pgeocode.Nominatim('fr')\n\n# Query a single postal code\nparis_13 = nomi.query_postal_code('75013')\nprint(f\"Paris 13 details:\\n{paris_13}\\n\")\n\n# Query multiple postal codes\nmultiple_cities = nomi.query_postal_code(['75013', '69006'])\nprint(f\"Multiple cities details:\\n{multiple_cities}\\n\")\n\n# Initialize GeoDistance for a specific country\ndist = pgeocode.GeoDistance('fr')\n\n# Calculate distance between two postal codes\ndistance_km = dist.query_postal_code('75013', '69006')\nprint(f\"Distance between 75013 and 69006: {distance_km:.2f} km\")\n\n# Example of using query_location (requires 'thefuzz' optional dependency for fuzzy matching)\n# If 'thefuzz' is not installed, it will perform exact matches.\n# To install: pip install \"pgeocode[fuzzy]\"\n# anti_data = nomi.query_location(\"Antibes\", top_k=3)\n# print(f\"Antibes locations:\\n{anti_data}\\n\")","lang":"python","description":"This quickstart demonstrates how to use `pgeocode.Nominatim` for querying postal code and location data, and `pgeocode.GeoDistance` for calculating distances between postal codes for a specified country. The data is downloaded and cached locally on first use. You can optionally set the `PGEOCODE_DATA_DIR` environment variable to control where the data is stored.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"0.4.1","pypi_latest":"0.5.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":8.3,"avg_import_s":0.96,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.84,"mem_mb":29.5,"disk_size":"168.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":8.2,"import_time_s":0.67,"mem_mb":29.5,"disk_size":"161M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.38,"mem_mb":34.3,"disk_size":"180.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.7,"import_time_s":1.06,"mem_mb":34.3,"disk_size":"173M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.99,"mem_mb":33.4,"disk_size":"166.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.8,"import_time_s":1.16,"mem_mb":33.4,"disk_size":"158M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.96,"mem_mb":33.4,"disk_size":"165.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":8,"import_time_s":1.02,"mem_mb":33.4,"disk_size":"157M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.78,"mem_mb":30.1,"disk_size":"175.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pgeocode","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":9.6,"import_time_s":0.78,"mem_mb":30.1,"disk_size":"170M"}]}}