pythonnet的系统导入让idelinter看到pythonnet的

2024-04-19 23:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

#!/usr/bin/env python3


import pythoncom

import clr



clr.AddReference("System")

clr.AddReference("System.Messaging")

from System import TimeSpan

from System.Messaging import MessageQueue


旁白:当我实际使用Python3.6运行它时,这段代码运行得很好。你知道吗

下面是PyCharm内部的截图。你知道吗

What I Am Seeing

  • 对于System它说:Unresolved reference 'System'

除了使用noqa注释,如何让我的PyCharm linting执行以下操作:

  • 不抱怨from System import XYZ?你知道吗

版本控制信息

  • IDE:PyCharm社区版2019.2
  • pythonnet2.3.0,安装在虚拟环境中

Tags: 代码fromimport示例binusridesystem
1条回答
网友
1楼 · 发布于 2024-04-19 23:26:13

根据我们的交流,这是我的完整答案。你知道吗

问题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

就这样!你知道吗

相关问题 更多 >