錯誤 This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck~~~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默認該項目的根目錄為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默認該項目的根目錄為source目錄,所以import使用絕對路徑而不是相對路徑的話,就會從項目的根目錄中查找,而不是我們希望的其中的/src目錄,所以import不成功。 改成相對路徑 在pycharm中設(shè)置source路徑 file–>setting(或者ctrl+alt+s)–>project structure 將放package的文件夾設(shè)置為source,這樣import的模塊類等,就是通過這些source文件夾作為根路徑來查找,也就是在這些source文件夾中查找import的東西。 ![]() |
|