13

I'm programming in pyCharm making a wxPython project (Mostly generated from wxGlade). If I have some code which specifies a string e.g.:

value_label = wx.StaticText(self, wx.ID_ANY, _("Value"))

It then complains about Unresolved reference '_'. Is there any way to ignore only this unresolved reference?

4

3 回答 3

17

您可以更改未解决的参考检查的设置:

  • 打开设置...菜单
  • 选择检查页面
  • 搜索未解决的引用并单击检查。在右下角,您应该会看到一个名为Ignore references的列表小部件。
  • 添加_到列表中。

警告:这将忽略项目所有源文件中_未解析的引用。这通常不是问题,因为您极不可能为您的函数使用这种名称。如果你得到一个关于那么你已经知道你忘记打电话了。NameError_gettext.install

或者:

  • 打开有问题的文件并将光标放在_.
  • Alt+Enter打开上下文菜单(这可能取决于您选择或配置的快捷方式)。
  • 选择忽略未解析的引用module_name._
  • 选择修复所有“未解决的引用”问题

我刚刚检查过,可以将其限制为仅一个模块。如果您正在使用_内部模块a,则添加a._到列表中忽略引用_,并且模块内部的所有用法都a.py将被忽略,而警告将显示_在其他模块中的误用。

于 2014-04-11T18:42:39.063 回答
8

另一种选择是将其包含在您正在编写的类/方法/函数之上:

# noinspection PyUnresolvedReferences
于 2018-12-18T12:06:47.227 回答
1

正如最初的问题所暗示的那样,对于 i18n'd 代码来说,这是一个真正的问题,它最终会标记每次出现的带有 _() 标记的字符串。我的解决方案是将数百个危险信号换成一个,将其添加到代码中:

    # Keep PyCharm happy.
    _ = _

这导致的一个危险信号很容易被忽略,并不断提醒我,虽然我喜欢 PyCharm,但它并不完美:-)。

于 2016-09-22T10:03:35.373 回答