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 numpyfonctions que np.arrayet np.zeroset ainsi de suite, vous écririez np_array, np_zerosetc. 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_importercomme 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.arrayetc.
L'avantage de ceci est que vous aurez un module unique dans lequel toutes numpyles 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_importerne pas importer les noms qui n'existent pas numpycar ces erreurs ne seront pas détectées par pylint.