Verwenden Sie import module as name
tut nicht erstellen Sie einen Alias. Sie haben das Import-System falsch verstanden.
Import macht zwei Dinge:
- Legen Sie das Modul in den Speicher und das Ergebnis in
sys.modules
. Dies geschieht einmal nur; nachfolgende Importe verwenden das bereits geladene Modulobjekt erneut.
- Binden Sie einen oder mehrere Namen in Ihrem aktuellen Namespace.
Mit der Syntax as name
können Sie den Namen im letzten Schritt steuern.
Für die Syntax from module import name
müssen Sie immer noch das vollständige Modul benennen, da module
in sys.modules
nachgeschlagen wird. Wenn Sie wirklich einen Aliasnamen für diese haben wollen, können Sie zusätzliche Referenzen dort hinzu:
import numpy # loads sys.modules['numpy']
import sys
sys.modules['np'] = numpy # creates another reference
Beachten Sie, dass diese speziellen Fall in , Importieren numpy
auch das Laden von numpy.linalg
auslöst, so alles, was Sie tun müssen, ist :
import numpy as np
# np.linalg now is available
Kein Modul-Aliasing ist erforderlich. Für Pakete, die Submodule nicht automatisch importieren, dann würden Sie verwenden müssen:
import package as alias
import package.submodule
und alias.submodule
dann ohnehin zur Verfügung steht, weil ein Submodul immer als ein Attribut auf dem übergeordneten Paket hinzugefügt wird.
von numpy Import linealg – Laszlowaty
Ihr Beispiel funktioniert gut. Meintest du damit, dass du tatsächlich 'np import linalg' probiert hast? – BrenBarn