解决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脚本来获取mp3文件tag信息的教程
May 04 Python
Python 3.x 新特性及10大变化
Jun 12 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
详解python单元测试框架unittest
Jul 02 Python
python同时替换多个字符串方法示例
Sep 17 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python使用turtle库绘制奥运五环
Feb 24 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
探讨php中header的用法详解
2013/06/07 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
犀利的js 函数集合
2009/06/11 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
区分python中的进程与线程
2020/08/13 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
工厂门卫岗位职责
2013/11/25 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
小学生开学感言
2014/02/28 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
公司年会主持词范文!
2019/05/07 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers