1. 程式人生 > >Pycharm中無法匯入包問題:Unresolved reference 解決方法

Pycharm中無法匯入包問題:Unresolved reference 解決方法

問題描述

在專案E中存在資料夾F、G、H,F有資料夾a和b,在a中引入b的一個類,

a.py:

from b import fun

雖然執行成功,但是在Pycharm中顯示: Unresolved reference

例如:

在pycharm中經常會出現,顯示無法引用到的這些類,即使這些類都在工程中.

看檔案上方的import會發現對應的模組import不成功:

Unresolved reference 'ERROR_CODE_INPUT_ERROR' less... (Ctrl+F1) 
This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typin

分析

既然這些類都在工程中,那麼import不成功就是因為路徑沒對應,事實上是pycharm預設該專案的根目錄為source目錄,所以import使用絕對路徑而不是相對路徑的話,就會從專案的根目錄中查詢,而不是我們希望的其中的/src目錄,所以import不成功。

解決方法

  • 改成相對路徑
    from ...package import *
    第一個.表示當前目錄,後面的每一個’.’表示上一層目錄。用相對目錄可以保證import成功,但是不建議這種寫法,因為如果當前這個檔案要移動到其他包的話,就要改很多地方了,當然,使用相對路徑表示可以隨意更改包名。

  • 在pycharm中設定source路徑

    file–>setting–>project:server–>project structure

  • 將放package的資料夾設定為source,這樣import的模組類等,就是通過這些source資料夾作為根路徑來查詢,也就是在這些source資料夾中查詢import的東西。


方法二:

1. 將F資料夾 設定為source


2. 確保將soucers加入到PYTHONPATH: