如何从其pip要求名称中检索模块的导入名称?

时间:2016-05-12 06:07:51

标签: python python-2.7 pip

在解析requirements.txt之后,我们假设这是pip模块的列表:

>>> modules_req = ['beautifulsoup4','django-nose','ujson']
>>> for module in modules_req:
...     __import__(module)
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ImportError: No module named beautifulsoup4

我们如何才能检索这些模块的导入名称,例如bs4beautifulsoup4django_nosedjango-nose

1 个答案:

答案 0 :(得分:4)

我不确定这是你真正想做的事情,但对于已安装的软件包,您可能会因查询软件包信息pkg_resources而获得一些好处:

$ pip freeze
beautifulsoup4==4.4.1

>>> import pkg_resources
>>> list(
        pkg_resources
        .get_distribution('beautifulsoup4')
        ._get_metadata('top_level.txt')
    )
['bs4']