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.
并不影響程序的正常運行,但pycharm有下波浪線
問題描述
pycharm顯示無法引用到的這些類,即使這些類都在工程中,看看文件上方的import會發(fā)現(xiàn)對應(yīng)的模塊import不成功。
分析
既然這些類都在工程中,那么import不成功就是因為路徑?jīng)]對應(yīng),事實上是pycharm默認(rèn)該項目的根目錄為source目錄,所以import使用絕對路徑而不是相對路徑的話,就會從項目的根目錄中查找,而不是我們希望的其中的/src目錄,所以import不成功。
解決方法
from ...package import *
第一個.表示當(dāng)前目錄,后面的每一個’.’表示上一層目錄。用相對目錄可以保證import成功,但是不建議這種寫法,因為如果當(dāng)前這個文件要移動到其他包的話,就要改很多地方了,當(dāng)然,使用相對路徑表示可以隨意更改包名,只要保證
將放package的文件夾設(shè)置為source,這樣import的模塊類等,就是通過這些source文件夾作為根路徑來查找,也就是在這些source文件夾中查找import的東西。
pycharm顯示無法引用到的這些類,即使這些類都在工程中,看看文件上方的import會發(fā)現(xiàn)對應(yīng)的模塊import不成功。
既然這些類都在工程中,那么import不成功就是因為路徑?jīng)]對應(yīng),事實上是pycharm默認(rèn)該項目的根目錄為source目錄,所以import使用絕對路徑而不是相對路徑的話,就會從項目的根目錄中查找,而不是我們希望的其中的/src目錄,所以import不成功。
改成相對路徑
在pycharm中設(shè)置source路徑
file–>setting(或者ctrl+alt+s)–>project structure
將放package的文件夾設(shè)置為source,這樣import的模塊類等,就是通過這些source文件夾作為根路徑來查找,也就是在這些source文件夾中查找import的東西。