如何配置Pylint解决E0611:模块‘events’中无‘foo_bar’名称错误?
解决Pylint报E0611: No name 'foo_bar' in module 'events'的配置方法
问题场景
项目目录结构
├── src ├──── events ├────── foo_bar ├──────── pop_bou ├────────── app.py
app.py代码:
from typing import Optional def handler() -> Optional[dict]: return None
测试文件代码
def test_foo(): from events.foo_bar.pop_bou.app import handler ...
运行Pylint报错
E0611: No name 'foo_bar' in module 'events' (no-name-in-module)
解决配置方法
方法1:命令行临时指定源码路径
运行Pylint时,把src目录添加到Python搜索路径:
pylint --init-hook "import sys; sys.path.insert(0, './src')" your_test_file.py
或者使用--path参数简化:
pylint --path ./src your_test_file.py
方法2:通过配置文件永久设置
在项目根目录创建或修改.pylintrc文件,添加以下配置项:
[MASTER] init-hook = import sys; sys.path.insert(0, './src')
也可以直接设置pythonpath字段:
[MASTER] pythonpath=./src
后续运行Pylint会自动读取该配置,识别src下的模块结构。
方法3:添加空的__init__.py文件(可选)
虽然Python 3.3+支持无__init__.py的命名空间包,但部分版本的Pylint需要通过空文件识别模块层级。可在以下目录创建空的__init__.py:
events/__init__.pyevents/foo_bar/__init__.pyevents/foo_bar/pop_bou/__init__.py
内容的提问来源于stack exchange,提问作者Stéphane GRILLON
相关产品推荐
相关产品推荐

