Python egg 模块名称的可靠检测

Robust detection of module name of Python egg

假设我做了一个鸡蛋

~/toolz$ python setup.py bdist_egg
creating 'dist/toolz-0.7.4-py3.4.egg'

如何检测这个蛋的模块名称?它会始终是版本字符串前面的词吗?

>>> egg_name = 'toolz-0.7.4-py3.4.egg'
>>> egg_name.split('-')[0]
'toolz'

或者这有时会失败吗?有没有我应该使用的库?

In [1]: import pkg_resources

In [2]: pkgs = list(pkg_resources.find_distributions('dist/toolz-0.7.4-py2.7.egg'))

In [3]: assert len(pkgs) == 1

In [4]: pkg = pkgs[0]

In [5]: pkg.project_name
Out[5]: 'toolz'