在分析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

例如,如何检索这些模块的导入名称,即bs4表示beautifulsoup4,而django_nose表示django-nose

最佳答案

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

$ pip freeze
beautifulsoup4==4.4.1

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

10-01 18:01