Esta é a pseudo-solução que eu criei para esse problema.
#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
Então, em seu código, em vez de chamar numpy
funções como np.array
e np.zeros
e assim por diante, você iria escrever np_array
, np_zeros
etc. As vantagens desta abordagem vs. outras abordagens sugeridas em outras respostas:
- A desativação / ativação do pylint está restrita a uma pequena região do seu código
- Isso significa que você não precisa cercar todas as linhas que invocam uma função numpy com uma diretiva pylint.
- Você não está desativando o erro do pylint em todo o arquivo, o que pode mascarar outros problemas com o seu código.
A clara desvantagem é que você precisa importar explicitamente todas as funções numpy usadas. A abordagem poderia ser elaborada mais adiante. Você pode definir seu próprio módulo, chamá-lo, numpy_importer
como segue
""" 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
Em seguida, o código do aplicativo pode importar apenas este módulo (em vez de numpy) como
import numpy_importer as np
e usar os nomes, como de costume: np.zeros
, np.array
etc.
A vantagem disso é que você terá um único módulo no qual todas numpy
as importações relacionadas serão feitas de uma vez por todas e, em seguida, importá-lo com essa linha única, onde quiser. Ainda assim, você deve ter cuidado para numpy_importer
não importar nomes que não existem, numpy
pois esses erros não serão detectados pelo pylint.