解决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 内置字符串处理函数的使用方法
Jun 11 Python
Python编写检测数据库SA用户的方法
Jul 11 Python
Python中dictionary items()系列函数的用法实例
Aug 21 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
彻底理解Python中的yield关键字
Apr 01 Python
Python字符串的一些操作方法总结
Jun 10 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
python实现两个字典合并,两个list合并
Dec 02 Python
python 利用zmail库发送邮件
Sep 11 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 Python
Django基础CBV装饰器和中间件
Mar 22 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
dedecms模版制作使用方法
2007/04/03 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python列表操作方法详解
2020/02/09 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Keras自定义IOU方式
2020/06/10 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
警校毕业生自我评价
2014/04/06 职场文书
小小商店教学反思
2014/04/27 职场文书
经营目标管理责任书
2014/07/25 职场文书
今日说法观后感
2015/06/08 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python