Es kann verwendet werden, wenn Sie aufgrund besonderer Umstände dynamisch importieren möchten.
https://docs.python.org/ja/3/library/importlib.html
Alles ist in das Dokument geschrieben, aber es ist ein wenig schwer zu verstehen. Wenn Sie es also schnell verwenden möchten, ist es meiner Meinung nach eine gute Idee, den folgenden Code am Anfang zu setzen.
import importlib.machinery
import sys
class PackageFinder(importlib.machinery.PathFinder):
@classmethod
def find_spec(cls, fullname, path=None, target=None):
if not path:
path = []
#Geben Sie die Liste der Verzeichnisse an, die Sie im Pfad suchen möchten
path.append("/path/to/package/root")
return importlib.machinery.PathFinder.find_spec(fullname, path, target)
sys.meta_path.append(PackageFinder)
Durch dynamisches Wechseln des Pfads des obigen Codes können Sie auch akrobatische Aktionen ausführen, z. B. das synchrone Lesen eines bestimmten Verzeichnisses, das Herunterladen und Lesen eines Remote-Verzeichnisses (empfohlen). Ich habe keine).
Darüber hinaus gibt es auch sys.path_hooks, das anscheinend verwendet wird, wenn Sie das Verhalten des entsprechenden Modulimports anpassen möchten, indem Sie den Pfad als Argument verwenden, anstatt den Pfad hinzuzufügen.
Recommended Posts