Was entspricht import.find_module in importlib

8

Ein Teil meines Codes verwendet das jetzt veraltete imp -Paket, um ein Modul zu finden

%Vor%

Was ist die äquivalente Funktion oder der Code, um die gleichen Ergebnisse mit Paket importlib zu erhalten?

    
Marc 09.02.2016, 09:16
quelle

2 Antworten

4

Gleicher Ordner

Wenn sich das Modul in Ihrem Arbeitsverzeichnis befindet, importlib.util.find_spec wahrscheinlich reicht für Ihre Zwecke aus.

Wenn Sie beispielsweise nur das Modul laden möchten, können Sie Folgendes verwenden:

  • in Python 3.5 und höher veraltet:

    %Vor%
  • eingeführt in Python 3.5 und höher:

    %Vor%

    Vorbehalt: Ich habe das nicht getestet, aber es stammt direkt aus der Dokumentation Ich nehme an, es funktioniert.

Sie können mehrere andere Eigenschaften mit dem Objekt toolbox_specs bewerten. Ein entsprechendes Dateiobjekt gehört jedoch nicht zu ihnen. Wenn Sie dies wirklich in Python 3 benötigen, müssen Sie wahrscheinlich den Pfad der Datei abrufen und mit anderen Methoden öffnen.

Anderer Ordner

Um ein Modul in einem anderen Ordner zu finden, müssen Sie mit einem % co_de arbeiten % , die wiederum den Typ des Moduls kennen muss. Zum Beispiel, wenn Ihr Modul eine Erweiterung ist, können Sie die Spezifikationen wie folgt finden:

%Vor%

Sie können dann FileFinder wie oben beschrieben verarbeiten.

    
Wrzlprmft 09.05.2016 19:53
quelle
-1

Laut offizieller Python-Dokumentation auf dieser Seite imp

find_module Veraltet seit Version 3.3 Verwenden Sie stattdessen importlib.util.find_spec() , es sei denn Python 3.3-Kompatibilität ist erforderlich, in diesem Fall verwenden Sie importlib.find_loader() .

Verwenden Sie importlib.util.find_spec("Tools") für die Suchspezifikation, um weitere Informationen zu erhalten. Sie können diesen Link .

Und verwenden Sie importlib.find_loader("Tools") für den Loader weitere Informationen

BEARBEITEN:

Beispielcode

%Vor%     
Damirchi 16.05.2016 18:07
quelle

Tags und Links