它的工作PyCharm 2016,但在2017年PyCharm沒有: 如何在.pyi文件中只聲明原始模塊的一部分字段?
「解決方案」:從typing
PyCharm 2017.2.x支持NamedTuple
,我不需要再使用.pyi
文件。
它的工作PyCharm 2016,但在2017年PyCharm沒有: 如何在.pyi文件中只聲明原始模塊的一部分字段?
「解決方案」:從typing
PyCharm 2017.2.x支持NamedTuple
,我不需要再使用.pyi
文件。
編輯#1:
我發現這個問題:https://youtrack.jetbrains.com/issue/PY-18597並且有一個答案:
PyCharm 2017.1 EAP建立現在總是喜歡存根文件在Python路徑上找到Python文件。
意思就是說Pycharm將尋找是否存在這樣的文件是什麼在.pyi
文件存在,它會使用只此作爲參考。所以你沒有別的選擇,只能在.pyi文件中聲明所有的函數。
您可以找到如何避免here
編輯#2潛在惱人的警告和錯誤的一些知識:
是的,我可以證實,由於預期PyCharm以及可能from ... import *
不起作用成爲一個可以開放問題的錯誤(或者如果某人成功完成了這項工作,請告訴我們該怎麼做)!
我找到了一個解決辦法在此基礎上報價:
模塊和導入存根變量不考慮從存根出口,除非進口採用進口... ...作爲形式或等價從...進口...作爲...形式。
如果您: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這是一個關於可能的陰影警告的模塊名稱由您的文件名(這不適用於您的情況!)
感謝您的答案。但我創建.pyi文件以提高完成度。在這種情況下,情況只會變得更糟。 – ADR
我根據新的發現編輯了我的答案,看看:) –
我讀過它。但是還沒有找到問題的答案......我嘗試在.pyi文件中寫入'from file_a import *'。但它沒有奏效。這是錯誤還是功能? – ADR