Last modified: Jun 09, 2025 By Alexander Williams

Install pygeoip in Python - Quick Guide

pygeoip is a Python library for geo-location tasks. It helps map IP addresses to geographic locations. This guide explains how to install and use it.

Prerequisites

Before installing pygeoip, ensure you have Python 3.6+. Check your version with:


import sys
print(sys.version)

You also need pip. Update pip to avoid issues:


python -m pip install --upgrade pip

Install pygeoip

Use pip to install pygeoip. Run this command:


pip install pygeoip

For a specific version, specify it:


pip install pygeoip==0.3.2

Verify Installation

Check if pygeoip installed correctly:


import pygeoip
print(pygeoip.__version__)

This should print the installed version.

Download GeoIP Database

pygeoip needs a GeoIP database. Download it from MaxMind:


wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz

Place the file in your project directory.

Basic Usage

Here's how to use pygeoip:


import pygeoip

# Load the GeoIP database
gi = pygeoip.GeoIP('GeoLiteCity.dat')

# Get location data for an IP
ip = '8.8.8.8'
data = gi.record_by_addr(ip)

print(data)

This code prints location details for Google's DNS IP.

Example Output

The output looks like this:


{
    "city": "Mountain View",
    "region_name": "California",
    "country_name": "United States",
    "longitude": -122.0838,
    "latitude": 37.3860
}

Common Methods

pygeoip offers useful methods:

  • record_by_addr - Gets data by IP address
  • record_by_name - Gets data by hostname
  • country_code_by_addr - Gets country code

Troubleshooting

If you get errors, try these fixes:

Database not found: Ensure the .dat file path is correct.

ImportError: Reinstall pygeoip if import fails.

For similar installations, see How to Install dnspython in Python.

Alternatives

Consider these libraries for similar tasks:

  • geoip2 - Newer MaxMind library
  • ip2geotools - Alternative geo-location tool

For security tasks, check Install PyCryptodome in Python.

Conclusion

pygeoip is simple for IP geo-location tasks. Install it with pip, get a GeoIP database, and start mapping IPs.

Remember to handle location data responsibly and comply with privacy laws.