¿Cómo listar los nombres de los paquetes PyPI correspondientes a las importaciones en un script?

¿Hay alguna forma de enumerar los nombres de los paquetes de PyPi que corresponden a los módulos que se importan en un script?

Por ejemplo, para importar el módulo scapy3k (este es su nombre) necesito usar

 import scapy.all 

pero el paquete real para instalar es scapy-python3 . Lo último es lo que busco extraer de lo que encontraré en la statement de import (no me importa su nombre, scapy3k en ese caso).

Hay otros ejemplos (que me escapan ahora mismo) de paquetes que tienen un nombre de pip install completamente diferente de lo que se usa en la import posterior.

El nombre que aparece en pypi es el nombre definido en el archivo setup.py / setup.cfg de la distribución. No hay ningún requisito de que este nombre se relacione con el nombre del paquete que se instalará. Por lo tanto, no hay una forma 100% confiable de obtener el nombre de una distribución en pypi, dado solo el nombre del paquete que instala (el caso de uso identificado en el comentario del OP).