Это псевдо-решение, которое я придумал для этой проблемы.
#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
Затем в коде, вместо вызова numpy
функции , как np.array
и np.zeros
и так далее, можно было бы написать np_array
, np_zeros
и т.д. Преимущества такого подхода в сравнении с другими подходами , предложенными в других ответах:
- Pylint отключить / включить ограничен небольшой областью вашего кода
- Это означает, что вам не нужно окружать каждую строку, которая имеет вызов функции numpy, директивой pylint.
- Вы не отключаете ошибку Pylint для всего файла, что может скрыть другие проблемы с вашим кодом.
Очевидный недостаток заключается в том, что вы должны явно импортировать каждую функцию, которую вы используете. Подход может быть разработан в дальнейшем. Вы можете определить свой собственный модуль, назовите его, скажем, numpy_importer
следующим образом
""" 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
Тогда код вашего приложения может импортировать только этот модуль (вместо numpy) как
import numpy_importer as np
и используйте имена как обычно: np.zeros
и np.array
т. д.
Преимущество этого состоит в том, что у вас будет один модуль, в котором все numpy
связанные импортные операции выполняются раз и навсегда, а затем вы импортируете его одной строкой, куда хотите. Тем не менее, вы должны быть осторожны, чтобы numpy_importer
не импортировать имена, которые не существуют, numpy
поскольку эти ошибки не будут обнаружены Pylint.