pycharm 導入模塊時 誤報錯誤

這篇文章不是寫找不到模塊報錯的,而是寫我可以正常跑程序,但是pycharm有紅色的錯誤提示(后文簡稱pycharm報錯),也就是說,我代碼寫的沒問題,但是pycharm沒有正確理解我的項目結構。

我先是這么組織了一下項目目錄,src是存放所有代碼的目錄,src/main.py是程序的入口

myproject
├── Dockerfile
├── README.MD
├── data
├── output
├── src
│   ├── action
│   ├── common
│   ├── data
│   ├── main.py
│   └── model
└── test
    ├── test.py
    └── test_main.py

然后,當我想在/src/data/a.py中導入/src/common/b.py時出現了問題:

  1. 如果我用相對導入的方法from ..common import b導入,pycharm不報錯,運行時會報錯ImportError: attempted relative import beyond top-level package,原因看第一篇引用吧,這里不贅述了
  2. 使用絕對導入的方法
    1. 使用from src.common import b, pycharm不報錯,運行時報錯ModuleNotFoundError: No module named 'src'
    2. 使用from common import b,運行不報錯,pycharm報錯(No module named 'common')。

首先要理解,2.1是運行時報錯是因為main.py的父級目錄src對python來說壓根就不是,也就無從導入,正確的導入方法只能是2.2,那么pycharm報錯就一定是誤報了。怎么不讓它誤報呢?打開settings...|Project:xxx|Project Structure,在這里你會發現,pychrm只知道你的content root,其它的都不知道,你要做的就是像圖中黃色框中所示,給它解釋清楚就好了。

目錄結構設置

引用

  1. https://zhuanlan.zhihu.com/p/416867942
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容