Wie verhindere ich, dass PyCharm sich über Unterstreichungszeichenfolgen beschwert?
Frage
Ich programmiere in PyCharm und erstelle ein wxPython-Projekt (hauptsächlich generiert aus wxGlade).Wenn ich einen Code habe, der eine Zeichenfolge angibt, z.:
value_label = wx.StaticText(self, wx.ID_ANY, _("Value"))
Es beschwert sich dann über Unresolved reference '_'
.Gibt es eine Möglichkeit, nur diese ungelöste Referenz zu ignorieren?
Lösung
Sie können die Einstellungen des Ungelöste Referenz Inspektion:
- Öffnen Sie die Einstellung... Menü
- Wählen Sie die Inspektion Seite
- Suche nach Ungelöste Referenzen und klicken Sie auf die Inspektion.Unten rechts sollten Sie ein Listen-Widget mit dem Titel sehen Referenzen ignorieren.
- Hinzufügen
_
zur Liste.
Warnung: dadurch wird die ungelöste Referenz ignoriert _
in aller quelldateien des Projekts.Dies ist normalerweise kein Problem, da es sehr unwahrscheinlich ist, dass Sie diese Art von Namen für Ihre Funktionen verwenden.Wenn Sie jemals eine bekommen NameError
über _
dann wissen Sie bereits, dass Sie vergessen haben anzurufen gettext.install
.
Alternativ:
- Öffnen Sie die fehlerhafte Datei und platzieren Sie den Cursor auf ein Vorkommen von
_
. - Drücken Alt+Geben um das Kontextmenü zu öffnen (dies kann von den von Ihnen gewählten oder konfigurierten Verknüpfungen abhängen).
- Wählen Ungelöste Referenz ignorieren
module_name._
- Wählen Beheben Sie alle Probleme mit ungelösten Referenzen
Ich habe es gerade überprüft und es ist möglich, dies auf nur ein Modul zu beschränken.Wenn Sie verwenden _
innenmodul a
fügen a._
zur Liste Referenzen ignorieren und alle Verwendungen von _
im Inneren des a.py
modul ignoriert, während die Warnungen bei Missbrauch von angezeigt werden _
in anderen Modulen.
Andere Tipps
Eine andere Möglichkeit besteht darin, dies über die Klasse / Methode / Funktion aufzunehmen, die Sie schreiben:
# noinspection PyUnresolvedReferences
Wie die ursprüngliche Frage impliziert, ist dies ein echtes Problem für i18n-Code, der letztendlich jedes Vorkommen einer mit _() markierten Zeichenfolge kennzeichnet.Meine Lösung, die die Hunderte von roten Fahnen gegen eine eintauscht, besteht darin, dies dem Code hinzuzufügen:
# Keep PyCharm happy.
_ = _
Die eine rote Fahne, die dies verursacht, ist leicht zu ignorieren und erinnert mich immer wieder daran, dass ich PyCharm zwar liebe, es aber nicht ist perfekt :-).