I have a module (let's name it optional_module) that I want to be imported optionally, as it can be either present or absent. Now I do it this simple way: try: import optional_module except ImportError: ... # Working around the module else: ... # Using the module But mypy gives an error in case when optional_module is missing: main.py:2: error: Cannot find implementation or library stub for module named "optional_module" [import-not-found] import optional_module ^ main.py:2: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports Yes, I looked at the link proposed by mypy, but it didn't help me to find the answer. Of course, I could simply remove this check adding "# type: ignore" after the import line, but it would also suppress all useful checks of the module content in case when it does exist. So it's too rude. Is there a more delicate and correct way to make mypy stop worrying and love my conditional import? P.S. Here are my mypy configuration flags: [mypy] disallow_untyped_defs = True check_untyped_defs = True disallow_any_unimported = True warn_return_any = True warn_unreachable = True warn_redundant_casts = True warn_unused_ignores = True pretty = True Continue reading...