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。
- 对于
System
它说:Unresolved reference 'System'
除了使用 noqa
评论之外,我怎样才能让我的 PyCharm linting 执行以下操作:
- 不抱怨
from System import XYZ
?
版本信息
- IDE: PyCharm 社区版
2019.2
- pythonnet
2.3.0
,安装在虚拟环境
根据我们的交流,这是我的完整答案。
第 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
就是这样!
我在 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。
- 对于
System
它说:Unresolved reference 'System'
除了使用 noqa
评论之外,我怎样才能让我的 PyCharm linting 执行以下操作:
- 不抱怨
from System import XYZ
?
版本信息
- IDE: PyCharm 社区版
2019.2
- pythonnet
2.3.0
,安装在虚拟环境
根据我们的交流,这是我的完整答案。
第 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
就是这样!