【发布时间】:2019-01-11 16:46:31
【问题描述】:
使用flask 的app.logger 成员函数(例如app.logger.error)会导致pylint 报告E1101 (no-member) 错误,即使app.logger 的这些成员是在运行时定义的。
这可以通过使用以下文件来重现:
app.py
import flask
app = flask.Flask(__name__)
@app.route('/')
def say_hello():
app.logger.debug('A debug message')
app.logger.error('An error message')
return 'hello'
requirements.txt
pylint==2.1.0
Flask==1.0.2
用于重现问题的示例命令,使用 virtualenv:
(此处使用 Python 3.5,但该问题并非特定于该版本)
virtualenv --python=python3.5 env
source env/bin/activate
pip install pip==18.0
pip install -r requirements.txt
最后,运行pylint:
pylint -E app
返回这些错误:
************* Module app
app.py:9:4: E1101: Method 'logger' has no 'debug' member (no-member)
app.py:10:4: E1101: Method 'logger' has no 'error' member (no-member)
有没有避免这些误报的好方法?
【问题讨论】:
-
pylint 错误报告:github.com/PyCQA/pylint/issues/2586
标签: python logging flask pylint