解决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 相关文章推荐
PyCharm配置mongo插件的方法
Nov 30 Python
详解Python requests 超时和重试的方法
Dec 18 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 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编写大型网站问题集
2007/03/06 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
PHP设置进度条的方法
2015/07/08 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
环保倡议书100字
2014/05/15 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2016高考感言
2015/08/01 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers