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

标签 python pycharm ide clr python.net

我在 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 内部的截图。

What I Am Seeing

  • 对于 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 .

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

  • 继续执行带有警告的相应源代码行(一个接一个)
  • 对错误使用更多操作上下文菜单(在本例中为System)
  • 使用 Ignore unresolved reference 'pythonnet_tests.System' 子菜单
  • 最后使用Suppress for 语句

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

# noinspection PyUnresolvedReferences

就是这样!

关于Python 获取 IDE linter 以从 pythonnet 的 clr 中的系统导入中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598366/

相关文章:

java - Eclipse 中的 "unbound"库或类路径容器是什么意思?

eclipse - 如何在 Eclipse IDE 编辑器中设置一行代码的快捷方式

python - SimpleHTTPServer 和 SocketServer

python - 使用 H2O 的超参数在 Sklearn 中重新构建 XGBoost 在 Python 中提供了不同的性能

python - 如何使用 PyCharm 启动远程调试?

python - 如何在pycharm中将插入符号移动到控制台?

python - 示例 : how do I make bokeh omit missing dates when using datetime as x-axis

python - 使用 MultiIndex 从 DataFrame 中删除特定行

python - 如何使 PyCharm Python 控制台与代码一起工作?

使用套接字与共享内存进行 Java 调试