如何在脚本中列出与导入对应的 PyPI 包的名称?

How to list the names of PyPI packages corresponding to imports in a script?

有没有办法列出 PyPi 包 与脚本中导入的模块相对应的名称?

例如导入模块scapy3k(这是它的名字)我需要使用

import scapy.all

但实际要安装的包是 scapy-python3。后者是我希望从 import 语句中找到的内容中提取的内容(我不关心它的名称 - 在这种情况下为 scapy3k)。

还有其他示例(现在让我逃避)的包的 pip install 名称与之后 import 中使用的名称完全不同。

pypi 上列出的名称是发行版 setup.py / setup.cfg 文件中定义的 name。不要求此名称与将要安装的包的名称相关。因此,没有 100% 可靠的方法来获取 pypi 上的分发名称,仅给出它安装的包的名称(OP 评论中确定的用例)。