1. 错误描述

之前在学习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中导入自己写的类,被划红线,但不影响执行的问题...相关推荐

  1. python输出到文件乱码_解决python解析文件时输出乱码

    首先获取到json模块,encoding指定文件编码utf-8,errors报错时忽略错误,print()输出结果看看是否有问题. # -*- coding: utf-8 -*- import jso ...

  2. idea 模块jdk依赖总是自动变_解决IDEA中导入新的maven依赖后Language Level自动重置问题...

    问题: 弄了个测试项目,因为有涉及JDK1.8的代码,所以将IDEA中默认的Language Level 5(即对应JDK1.5),修改为了8(即对应JDK1.8),但是每次引入新的maven依赖,自 ...

  3. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题

    python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...

  4. python函数注释 参数 省略号_解决python 输出是省略号的问题

    这个问题非常非常重要,搞了一晚上都没解决好,但是真的很简单很简单, 如果你也 是用的numpy array, 如果你也想得到输出矩阵的全部内容,而不是省略形式, [[ 0.10284943 0.095 ...

  5. python权限不够无法写入_解决python使用pip安装模块的权限问题

    ubuntu16.04下默认的python和pip 1.ubuntu16.04默认安装了两个版本的python,python2.7和python3.5,可以使用python -V查看版本 命令行中py ...

  6. python打包包含所有依赖_解决Python开发过程中依赖库打包问题的方法

    在Python开发的过程中,经常会遇到各种各样的小问题,比如在一台计算机上调试好的程序,迁移到另外一台机子上后往往会应为工程项目依赖库的缺失而造成错误. 除了一遍又一遍对着被抛出错误去重新instal ...

  7. python安装报错类型_解决Python安装cryptography报错问题

    解决Python安装cryptography报错问题 错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wst ...

  8. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  9. python为什么import不了_解决python有时候import不了当前的包问题

    问题描述: ImportError: No module named 'XXXX' 解决方式一: 将XXXX包放在python的site-package文件夹下 解决方式二: 可能是XXXX包没有新建 ...

最新文章

  1. archlinux安装chrome-webdriver
  2. tensorflow学习(6.Alexnet实现及猫狗分类)
  3. 如何去除bootstrap中按钮的黑线边框
  4. java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
  5. 生产电池要什么计算机技术,锂离子电池生产的几个关键工序讲解
  6. Activate Windows server 2003 in VMware
  7. 拉格朗日插值与拉格朗日反演
  8. 利用 Kubernetes Service 的 selector 无痛运维在线 pod
  9. Hello Guice
  10. 基于opencv答题卡识别
  11. Pyth学习中一定从基础抓起
  12. ipad浏览器安装java_在桌面浏览器中调试iphone、ipad等设备上的网页
  13. 15数字华容道解法 图解_数字华容道最后一行技巧数字华容道教学步骤
  14. 如何使用phpdoc生成PHP文档
  15. 原生JS简单的无缝自动轮播
  16. 软件测试之Web测试方法总结
  17. 群发邮件怎么发?外贸群发营销邮件哪个平台好?
  18. VS Code插件 使用 VS Code 连接 MySQL 数据库
  19. Spring Boot 禁用 Swagger 的三种方式
  20. 裁员、结婚、买房、赡养父母.....即将30岁,焦虑扑面而来

热门文章

  1. php header 刷新,一个离奇的php header函数问题的解决
  2. 零基础学习java------day1------计算机基础以及java的一些简单了解
  3. php5.4之分布式缓存memcache(windows7下安装配置)
  4. ThinkJS框架入门详细教程(二)新手入门项目
  5. iOS 上的相机捕捉 swift
  6. angular6 设置全局变量_angularjs 设置全局变量的3种方法
  7. python集合排序_numpy排序与集合运算用法示例
  8. Prolog 语言入门(一)
  9. ssh报错解决:Permission denied, please try again
  10. 熵编码之哈夫曼树(五)