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

WoJ*_*WoJ 5 python import installation pypi

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

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

import scapy.all
Run Code Online (Sandbox Code Playgroud)

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

还有其他一些例子(现在让我逃避),这些例子的pip install名称与import之后使用的名称完全不同.

sna*_*erb 2

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