解决Python中导入自己写的类,被划红线,但不影响执行的问题


Posted in Python onJuly 13, 2020

1. 错误描述

之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图:

解决Python中导入自己写的类,被划红线,但不影响执行的问题

看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自动提示方法名,只能靠手全部输入,这种容易造成手误,对于小白特别容易降低编写效率

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.1 加一个“点”

第一种方法非常简单,只需要在models前加一个点。表示,告诉pycharm我要引用的模块位于同级目录。

例如:

from models import className

修改为:

from .models import className

就可以不报错了

3.2 添加“当前目录”

第二种方法:

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

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

解决Python中导入自己写的类,被划红线,但不影响执行的问题

以上这篇解决Python中导入自己写的类,被划红线,但不影响执行的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Django实现分页显示效果
Oct 31 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
Python类class参数self原理解析
Nov 19 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 #Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 #Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 #Python
对python中list的五种查找方法说明
Jul 13 #Python
使用Python项目生成所有依赖包的清单方式
Jul 13 #Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 #Python
Python依赖包迁移到断网环境操作
Jul 13 #Python
You might like
MVC模式的PHP实现
2006/10/09 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python try 异常处理(史上最全)
2019/03/07 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
百度JavaScript笔试题
2015/01/15 面试题
DOM和JQuery对象有什么区别
2016/11/11 面试题
正规的求职信范文分享
2013/12/11 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
教师节联欢会主持词
2015/07/04 职场文书
结婚典礼致辞
2015/07/28 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python