它在PyCharm 2016中有效,但它在2017年的PyCharm中没有:
"溶液":
PyCharm 2017.2.x支持来自NamedTuple
的{{1}},我不再需要使用typing
文件了。
答案 0 :(得分:2)
编辑#1:
我发现了这个问题:https://youtrack.jetbrains.com/issue/PY-18597并且有一个答案:
PyCharm 2017.1 EAP版本现在总是比Python路径上的Python文件更喜欢存根文件。
意味着如果存在这样的文件,Pycharm将查找.pyi
文件中存在的内容,并且它将仅使用 作为参考。因此,您没有其他选择,只能在.pyi文件中声明所有功能。
您可以在here
中找到有关如何避免可能令人讨厌的警告和错误的一些知识编辑#2:
是的我可以确认from ... import *
在PyCharm中没有按预期工作,这可能是一个错误,您可以打开一个问题(或者如果有人成功完成这项工作,请告诉我们如何)!
我找到了一个基于这句话的解决方法:
导入到存根中的模块和变量不会被视为从存根中导出,除非导入使用import ... as ...表单或等同于... import ... as ...表单。
如果您:from file_a import a as a, b as b ...
,那么所有内容都会按预期取消标记,但在from file_a ...
会给您以下警告:
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.
不要惊慌,正如here所解释的那样,这是一个关于模块名称可能被文件名遮蔽的警告(在您的情况下不适用!)