Python 获取 IDE linter 以从 pythonnet 的 clr 中的系统导入中查看

Python getting IDE linter to see from System imports within pythonnet's clr

我在 MSMQ 通信中使用 pythonnet 包。在我的 IDE (PyCharm CE) 中,我有以下示例代码:

#!/usr/bin/env python3


import pythoncom

import clr



clr.AddReference("System")

clr.AddReference("System.Messaging")

from System import TimeSpan

from System.Messaging import MessageQueue


旁白:当我实际上 运行 使用 Python 3.6.

时,这段代码工作正常

下面是里面的截图 PyCharm。

除了使用 noqa 评论之外,我怎样才能让我的 PyCharm linting 执行以下操作:


版本信息

根据我们的交流,这是我的完整答案。

第 1 期

No module named clr

经过一些检查,操作系统环境和项目的虚拟环境之间似乎存在某种混合。

解决方案:删除并重新创建正确的虚拟环境修复它


第 2 期

Unresolved reference 'System'

在这种动态加载相应模块的情况下,最好的解决方案是在这些特定行上禁用 PyCharm 的检查器;因此,您不会在 IDE.

中丢失任何其他内容

可以看到How to disable inspection.

在我的沙箱中,我只需要:

  • 继续执行带有警告的相应源代码行(一个接一个)
  • 在出现错误时使用 More actions 上下文菜单(在本例中为 System
  • 使用 Ignore unresolved reference 'pythonnet_tests.System' 子菜单
  • 最后使用 Suppress for statement

每次对应的源代码行,前面都会有注释行:

# noinspection PyUnresolvedReferences

就是这样!