解决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编程中的包结构
Oct 25 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
python aiohttp的使用详解
Jun 20 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
python文件读写代码实例
Oct 21 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
python如何从键盘获取输入实例
Jun 18 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Python编写万花尺图案实例
Jan 03 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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中的日期及时间
2006/11/23 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
不懂JavaScript应该怎样学
2008/04/16 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
jQuery与JS加载事件用法分析
2016/09/04 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
2014植树节活动总结
2014/03/11 职场文书
公司请假条格式
2014/04/11 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书