import imp
import os
import sys


def find_ext_location(name):
    possible_suffixes = [suffix[0] for suffix in imp.get_suffixes()
                            if suffix[2] == imp.C_EXTENSION]
    path_entry = None
    filename = None
    try:
        for path in sys.path:
            for suffix in possible_suffixes:
                filename = name + suffix
                if os.path.exists(os.path.join(path, name + suffix)):
                    path_entry = path
                    raise StopIteration
    except StopIteration:
        return (path_entry, filename)
    else:
        raise ValueError('%s could not be found on sys.path' % name)
