Im Allgemeinen speichern wir die Python-Module, die wir selbst schreiben, getrennt von den Modulen, die mit Python geliefert werden, um die Wartung zu erleichtern. Wie füge ich benutzerdefinierte Module in Python hinzu?
Bevor wir diese Frage beantworten, müssen wir zunächst zwei Punkte klären:
1. Unterscheiden Sie strikt zwischen Paketen und Ordnern. Die Definition eines Pakets ist der Ordner, der __init__.py enthält. Wenn __init__.py nicht vorhanden ist, handelt es sich um einen gewöhnlichen Ordner.
2. Methode zum Schreiben des Modulimports. Bitte beachten Sie, dass nur der Paketpfad und nicht der Ordnerpfad erforderlich ist.
Die Python-Laufumgebung durchsucht die sys.path-Liste, wenn sie nach Bibliotheksdateien sucht. Wenn wir eine neue Klassenbibliothek in der Laufumgebung registrieren möchten, gibt es zwei Haupttypen : Methode:
1. Fügen Sie einen neuen Pfad zur sys.path-Liste hinzu.
2. Kopieren Sie die Bibliotheksdatei in das Verzeichnis in der sys.path-Liste (z. B. das Site-Packages-Verzeichnis).
Wir können sys.path anzeigen, indem wir den Code ausführen
import sys print sys.path
Wird ausgeführt Ergebnisse:
['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']
Die erste dieser beiden Methoden ist relativ einfach und hat die geringsten Auswirkungen auf die Umwelt.
Sehen wir uns an, wie die erste Methode funktioniert:
Erstellen Sie eine neue pythontab.pth im Site-Package-Ordner des Python-Installationsverzeichnisses . Der Pfad des obigen Site-Pakets lautet: /Library/Python/2.7/site-packages, und der Inhalt der Datei ist: der Ordnerpfad, in dem sich das zu importierende Paket befindet.
Wenn Python beim Durchlaufen des bekannten Bibliotheksdateiverzeichnisses eine .pth-Datei erkennt, fügt es den in der Datei aufgezeichneten Pfad zur Einstellung sys.path hinzu, sodass in der .pth-Datei die angegebene Datei angezeigt wird Das Paket kann von der Python-Laufumgebung erfolgreich gefunden werden, und wir können benutzerdefinierte Module einführen, genau wie mit integrierten Modulen.
Wenn der Standard-sys.path nicht den Pfad seines eigenen Moduls oder Pakets enthält, können wir auch die Methode sys.path.apend verwenden, um den Paketpfad dynamisch hinzuzufügen.