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

Dhr*_*hak 4 python pip python-2.7

解析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
Run Code Online (Sandbox Code Playgroud)

我们如何检索这些模块的导入名称,例如bs4forbeautifulsoup4django_nosefor django-nose

sec*_*ond 5

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

$ pip freeze
beautifulsoup4==4.4.1
Run Code Online (Sandbox Code Playgroud)

>>> import pkg_resources
>>> list(
        pkg_resources
        .get_distribution('beautifulsoup4')
        ._get_metadata('top_level.txt')
    )
['bs4']
Run Code Online (Sandbox Code Playgroud)