C'est la pseudo-solution que j'ai trouvée pour ce problème.
#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
Ensuite, dans votre code, au lieu d'appeler les numpy
fonctions que np.array
et np.zeros
et ainsi de suite, vous écririez np_array
, np_zeros
etc. Les avantages de cette approche par rapport aux autres approches proposées dans d' autres réponses:
- La désactivation / l'activation du pylint est limitée à une petite région de votre code
- Cela signifie que vous n'avez pas à entourer chaque ligne qui a un appel d'une fonction numpy avec une directive pylint.
- Vous ne désactivez pas l'erreur pour l'ensemble de votre fichier, ce qui pourrait masquer d'autres problèmes avec votre code.
L'inconvénient évident est que vous devez explicitement importer chaque fonction numpy que vous utilisez. L'approche pourrait être approfondie. Vous pouvez définir votre propre module, appelez-le par exemple, numpy_importer
comme suit
""" 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
Ensuite, votre code d'application pourrait importer ce module uniquement (au lieu de numpy) comme
import numpy_importer as np
et utiliser les noms , comme d' habitude: np.zeros
, np.array
etc.
L'avantage de ceci est que vous aurez un module unique dans lequel toutes numpy
les importations associées sont effectuées une fois pour toutes, puis vous l'importez avec cette seule ligne, où vous le souhaitez. Cependant, vous devez faire attention à numpy_importer
ne pas importer les noms qui n'existent pas numpy
car ces erreurs ne seront pas détectées par pylint.