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'
假设我做了一个鸡蛋
~/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'