2017-04-01 2 views

Antwort

1

EDIT # 1:

fand ich dieses Problem: https://youtrack.jetbrains.com/issue/PY-18597 und gibt es eine Antwort:

PyCharm 2.017,1 EAP baut nun immer lieber Stub-Dateien über Python-Dateien auf dem Python-Pfad gefunden.

Was bedeutet, dass PyCharm wird schauen, was in einer .pyi Datei vorhanden ist, wenn eine solche Datei vorhanden ist, und es wird nur dies als Referenz verwenden. Sie haben also keine andere Möglichkeit, als alle Ihre Funktionen in der .pyi-Datei zu deklarieren.

Sie können einige Kenntnisse finden, wie zu vermeiden potenziell lästige Warnungen und Fehler in here

EDIT # 2:

Ja, ich kann bestätigen, dass from ... import * nicht wie in PyCharm erwartet funktioniert und das kann Sei ein Fehler, für den du ein Problem öffnen kannst (oder wenn jemand es geschafft hat, dies zu tun, sag uns bitte wie)!

fand ich eine Abhilfe auf der Grundlage dieses Zitat:

Module und Variablen in die Stub importiert werden nicht aus dem Stummel exportiert betrachtet, sofern der Import den Import verwendet ... als ... Form oder das Äquivalent von ... importieren ... als ... Formular.

Wenn Sie: from file_a import a as a, b as b ... dann wird alles wie erwartet nicht markierten, aber from file_a ... wird Ihnen die folgende Warnung:

Import resolves to its containing file... (Ctrl+F1) 
This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items. 

Seien Sie nicht beunruhigt, da here erklärt es ist eine Warnung über mögliche Verschattung eines Modulnamens durch Ihren Dateinamen (was in Ihrem Fall nicht gilt!)

+0

Danke für die Antwort. Aber ich erstelle .pyi-Dateien, um die Vervollständigung zu verbessern. In diesem Fall wird es nur schlimmer werden. – ADR

+0

Ich habe meine Antwort basierend auf neuen Erkenntnissen bearbeitet, schau mal :) –

+0

habe ich gelesen. Aber es hat keine Antworten auf die Fragen gefunden ... Ich habe versucht, 'from file_a import *' in .pyi-Datei zu schreiben. Aber es hat nicht funktioniert. Es ist ein Fehler oder eine Funktion? – ADR

Verwandte Themen