解决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编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
Python进程间通信Queue实例解析
Jan 25 Python
python计算列表内各元素的个数实例
Jun 29 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python实现石头剪刀布小游戏
Jan 20 Python
python实现矩阵打印
Mar 02 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Python接口自动化测试的实现
Aug 28 Python
Python开发工具Pycharm的安装以及使用步骤总结
Jun 24 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 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/10/09 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python中实现的RC4算法
2015/02/14 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
简单谈谈python中的多进程
2016/11/06 Python
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python如何求圆的面积
2020/07/01 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
一个SQL面试题
2014/08/21 面试题
医科学校毕业生自荐信
2013/11/09 职场文书
阳光体育活动方案
2014/02/16 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
学历证明样本
2015/06/16 职场文书
感谢信
2019/04/11 职场文书