I know this is an old question, but wheel packages have since been invented! Since a wheel is simply a zip file that gets extracted into the lib/site-packages directory, an examination of the contents of the wheel archive can give you the top level imports.
>>> import zipfile >>> zf = zipfile.ZipFile('setuptools-35.0.2-py2.py3-none-any.whl') >>> top_level = set([x.split("https://stackoverflow.com/") for x in zf.namelist()]) >>> # filter out the .dist-info directory >>> top_level = [x for x in top_level if not x.endswith('.dist-info')] >>> top_level ['setuptools', 'pkg_resources', 'easy_install.py']
So setuptools actually gives you three top level imports!
pip now has a download command, so you can simply run
pip download setuptools (or whatever package you like) and then examine it.
Reverse look up
Unfortunately I haven’t found an easy way to go the other direction yet. That is, given the import name, what is the package name. This can be a problem if you are looking at some example code or maybe if you use Anaconda that comes with a bunch of packages pre-installed and you want to know the actual package name.