Mypy:从同名模块导入标准库模块

Mypy: importing standard libary module from module with the same name

对于一个新的应用程序,我想设置日志记录。该应用程序将包含多个模块,它们需要相同类型的配置。所以我创建了一个模块 my_company/logging.py:

import logging  # the standard Python logging

def configure():
  logging.getLogger('module1').setLevel(logging.INFO)
  logging.getLogger('module2').setLevel(logging.WARNING)

mypy 不太喜欢这样:

my_company/logging.py:6: error: Module has no attribute "getLogger"
Found 1 error in 1 file (checked 3 source files)

如何让 mypy 看到它应该使用 logging 模块 python 分发,而不是来自 my_company 文件夹?

可能是命名空间包问题

我遇到了完全相同的问题,这是由缺少 __init__.py 文件引起的。

添加它解决了问题。