美文网首页
pycharm 导入模块时 误报错误

pycharm 导入模块时 误报错误

作者: 几簟生凉 | 来源:发表于2023-04-05 02:04 被阅读0次

    这篇文章不是写找不到模块报错的,而是写我可以正常跑程序,但是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

    相关文章

      网友评论

          本文标题:pycharm 导入模块时 误报错误

          本文链接:https://www.haomeiwen.com/subject/yekeddtx.html