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文件,可以用于存放代码,可以相互导入