python 中关于无法导入自己写的类。解决方法

1.错误描述

  之前在学习python的过程中,导入自己写入的包文件时。from 自己写的类,会发现没有弹出选择。并且全输入类名称后会发现类名与相关导入的方法会爆红。如图:

  

 

2.原因分析

  pycharm中,source root概念非常重要,当你在代码中写相对路径的时候,就是以source root为起点进行查询。

  而pycharm中,当前的项目文件夹 是默认的source root,当你使用import语句导入模块时,Pycharm默认在project folder中寻找;

  所以当你在project folder下的某个subfolder导入某个同样定义在这个subfolder中的模块时,会出现导入错误。

3.解决方法

  问题已经找到了,pycharm不会将当前文件目录自动加入自己的sourse_path。所以我们要告诉pycharm就行了。下面有三种方法(3.1和3.2、3.3),都能比较方便的解决问题:

  3.1 加一个“点”

  这种方法试用于在方法在同级目录

  例如:

  

 

   3.2 写入类所在文件名+“点”

  这种方法适用于类在非同级目录下

  例如:

  

 

 

  3.3 添加“当前目录”

  这种方法也是我后面把家里代码带到公司打开报错之后才发现的。

  既然,pycharm不会将当前文件目录自动加入自己的sourse_path。那么我们就手动告诉他。

  右键目录名 点击make_directory as --> sources path 将当前工作的文件夹加入source_path就可以了。步骤如下图:

  

 

  3.4 查看是否文件夹选择错

  Directory 适合存放资源文件,存放代码文件不能导入类

  Python Package 本地会生成_init_.py文件,可以用于存放代码,可以相互导入

    

 

posted @ 2019-12-25 17:46  Jc_code  阅读(14095)  评论(3编辑  收藏  举报