解决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中enumerate的用法实例解析
Aug 18 Python
用Python进行行为驱动开发的入门教程
Apr 23 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python一键去抖音视频水印工具
Sep 14 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
python爬取抖音视频的实例分析
Jan 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
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
laravel学习教程之存取器
2016/07/30 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
pandas 层次化索引的实现方法
2019/07/06 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
Ado与Ado.net的相同与不同
2014/12/08 面试题
商务邀请函范文
2014/01/14 职场文书
战略合作协议书范本
2014/04/18 职场文书
完美的中文自荐信
2014/05/24 职场文书
代理人委托书
2014/09/16 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
MySQL索引失效场景及解决方案
2022/07/23 MySQL