2016-04-14 5 views
4

Gibt es eine Möglichkeit, das PyPi-Paket Namen aufzulisten, die den Modulen entsprechen, die in einem Skript importiert werden?Wie listet man die Namen von PyPI-Paketen auf, die den Importen in einem Skript entsprechen?

Zum Beispiel das Modul zu importieren scapy3k (dies ist der Name) Ich brauche

import scapy.all 

zu verwenden, aber das eigentliche Paket zu installieren scapy-python3. Letzteres ist was ich suche, um zu extrahieren, was ich in der import Aussage finden werde (ich interessiere mich nicht für seinen Namen - scapy3k in diesem Fall).

Es gibt andere Beispiele (die mir jetzt entgehen) von Paketen, die einen pip install Namen haben, der sich völlig von dem unterscheidet, was in der import danach verwendet wird.

+0

Müssen Sie den Namen eines Moduls finden, das Sie bereits installiert haben, oder eines Moduls, das Sie installieren müssen? – Francesco

+0

@Francesco: Das ist ein guter Punkt. Ich würde eher ein Modul sagen, das ich installieren muss. Der typische Anwendungsfall ist ein Skript, das auf System A entwickelt wurde und auf System B (anderes Betriebssystem) installiert werden muss. Es gibt eine Menge "Import", für die relevante Pakete installiert werden müssen. Daher werden die Namen noch nicht installierter Pakete benötigt. – WoJ

+0

Überraschenderweise kann ich mir keinen Weg vorstellen, dies zu tun. – laike9m

Antwort

1

Der auf pypi angegebene Name ist name, der in der Datei setup.py/setup.cfg der Distribution definiert ist. Es ist nicht erforderlich, dass sich dieser Name auf den Namen des Pakets bezieht, das installiert wird. Es gibt also keine 100% zuverlässige Möglichkeit, den Namen einer Distribution auf pypi zu erhalten, wenn nur der Name des Pakets angegeben wird, das installiert wird (der im Kommentar des OP angegebene Anwendungsfall).

Verwandte Themen