Dies ist die Pseudolösung, die ich für dieses Problem gefunden habe.
#pylint: disable=no-name-in-module
from numpy import array as np_array, transpose as np_transpose, \
linspace as np_linspace, zeros as np_zeros
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module
Dann in Ihrem Code, statt Aufruf numpy
Funktionen wie np.array
und np.zeros
und so weiter, würden Sie schreiben np_array
, np_zeros
etc. Vorteile dieses Ansatzes gegenüber anderen Ansätzen in anderen Antworten vorgeschlagen:
- Das Deaktivieren / Aktivieren von Pylint ist auf einen kleinen Bereich Ihres Codes beschränkt
- Das bedeutet, dass Sie nicht jede einzelne Zeile, die eine Numpy-Funktion aufruft, mit einer Pylint-Direktive umgeben müssen.
- Sie deaktivieren den Fehler nicht für Ihre gesamte Datei, wodurch andere Probleme mit Ihrem Code möglicherweise maskiert werden.
Der klare Nachteil ist, dass Sie jede von Ihnen verwendete Numpy-Funktion explizit importieren müssen. Der Ansatz könnte weiter ausgearbeitet werden. Sie können Ihr eigenes Modul numpy_importer
wie folgt definieren
""" module: numpy_importer.py
explicitely import numpy functions while avoiding pylint errors
"""
#pylint: disable=unused-import
#pylint: disable=no-name-in-module
from numpy import array, transpose, zeros #add all things you need
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module
Dann könnte Ihr Anwendungscode dieses Modul nur (anstelle von numpy) als importieren
import numpy_importer as np
und verwenden Sie die Namen wie immer: np.zeros
, np.array
usw.
Dies hat den Vorteil, dass Sie über ein einziges Modul verfügen, in dem alle numpy
zugehörigen Importe ein für alle Mal ausgeführt werden. Anschließend importieren Sie es mit dieser einzelnen Zeile, wo immer Sie möchten. Sie müssen jedoch darauf achten, dass numpy_importer
keine Namen importiert werden, in numpy
denen sie nicht vorhanden sind, da diese Fehler nicht von Pylint abgefangen werden.