(请先看这篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419)

如果看完这篇博文,你的问题还是没有解决,那么加我的公众号,后台发消息给我吧!当天回复!

很久很久以前,为了便于管理代码,我将多个大类保存于不同的py文件中,在使用对应类时进行引入、实例和调用。但是总会在导入包时,发现自己写的包下面会有红色波浪线(错误), 并且在使用包里的类及类的方法时,名称都得手敲,没有一点提示。所以,和大家分享一下,如何正常使用自己写的包。

大家都知道,Python编译器在遇到import语句时,会去寻找对应的包文件,一说“找”,就必须知道包的位置,知道位置才能寻找。这已经很接近问题的发生原因了:这条红色波浪线就是Python找不到或者找不准你提到的包文件。以Pycharm为例,每一个项目都有一个项目文件夹,里面有包含虚拟环境的文件夹及创建的py文件,当我们使用import时,默认从根目录,也就是source root处开始寻找我们导入的包文件,如果你的包文件恰好在这一目录下,那么,恭喜你,红色波浪线不会出现。如果,你的包文件不在当前目录下,而是在某个子目录下,所以你就在这看我写的博文了。点赞再看,肯定能看懂!

所以,不用我说,解决红色波浪线的方法就是让Python找到我们使用的包。通过网上学习,我找到了以下两种方法:

1、打开有问题的项目,在Pycharm中,右击你的目录名,点击“Mark Directory As” ---> "Sources Root"。但是要确保你选择后的根目录里确实有你要导入的包,要不然设置根目录干啥。

2、第二种方法类似于相对路径了,在包的面前加一个点,如下图所示:

from .robby import rubbs

加这个点就是为了告诉Python编译器,导入的包文件位于同级目录。

建议:直接在根目录创建py文件就可以了,别创建多个文件,花里胡哨的,最后把自己也搞晕(其实我最初遇到这个问题就是因为自己晕了,把要导入的包文件删掉了)

导入自己写的类,却被标红,原因及解决方法是?(Pycharm编辑器为例)相关推荐

  1. python 中关于无法导入自己写的类。解决方法

    python 中关于无法导入自己写的类.解决方法 参考文章: (1)python 中关于无法导入自己写的类.解决方法 (2)https://www.cnblogs.com/jc-home/p/1209 ...

  2. python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...

    1. 错误描述 之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自 ...

  3. 在Python中导入自己写的类,被划红线,但不影响执行

    之前在学习Python+selenium的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会 ...

  4. 关于servlet类,继承HttpServlet,但是无法导入HttpServlet包的原因和解决方法

    关于servlet类,继承HttpServlet,但是无法导入HttpServlet包的原因和解决方法 参考文章: (1)关于servlet类,继承HttpServlet,但是无法导入HttpServ ...

  5. 基于继承类的属性模版中无法绑定的原因和解决方法

    原文:基于继承类的属性模版中无法绑定的原因和解决方法 这个的晚上想学学WPF 做一个类似于ERP 左边菜单.构思一下思路 ...... 创建一个类基于Expander类. 1 public class ...

  6. Eclipse 导入项目有红感叹号的解决方法

    Eclipse 导入项目有红感叹号的解决方法 参考文章: (1)Eclipse 导入项目有红感叹号的解决方法 (2)https://www.cnblogs.com/mo-xue/p/5742734.h ...

  7. python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法

    某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法.用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块. 本文就此简述了Python实现动态添加类的属性或 ...

  8. 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法

    在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法 参考文章: (1)在同一个类中,一个方法调用另外一个有注解(比如@Async, ...

  9. 导入 SQL 时出现 Invalid default value for ‘create_time‘ 报错解决方法

    导入 SQL 时出现 Invalid default value for 'create_time' 报错解决方法 参考文章: (1)导入 SQL 时出现 Invalid default value ...

  10. 导入sql文件报错:MySQL server has gone away 以及解决方法

    项目场景: 导入sql文件报错:MySQL server has gone away 以及解决方法 问题描述: 在我们使用mysql导入大文件sql时可能会报MySQL server has gone ...

最新文章

  1. 基于Android平台扫码识别并链接服务器demo
  2. BZOJ 2535:NOI 2010 航空管制
  3. 11、MySQL字符集和校对规则详解
  4. angular change the url , prevent reloading
  5. Websockets与Spring 4
  6. java做服务器端给客户端传数据包_java 服务器怎样给客户端传输数据
  7. 844. Backspace String Compare
  8. flowable 设置流程跟踪高亮线的颜色
  9. 用php做盒子模型,什么是CSS盒子模型?一文带你了解CSS盒子模型
  10. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载
  11. word2vec的应用场景
  12. Linux下QT开发
  13. yytextview 复制_Swift iOS : YYText显示微博@文字的方法
  14. lj245a引脚功能图_lm324工作原理_引脚图功能_特性参数_内部电路及应用电路
  15. ps3手柄在linux ubuntu 下的使用
  16. IP地址物理位置查询
  17. 解决 canvas隐藏后出现滚动条的问题
  18. 【Flink】参数不生效
  19. qt中制作添加 .ts 翻译文件
  20. Windows10合并非相邻磁盘或分区到系统C盘方法

热门文章

  1. MQ java.lang.OutOfMemoryError: unable to create new native thread
  2. data.name.toLowerCase() is not a function问题
  3. SpringBoot整合Redis(单机/哨兵/集群)
  4. 工作组访问不到别人的计算机,众果搜的博客
  5. linux两个卷组可以合并,Linux系统中所有的逻辑卷必须属于同一个卷组()。
  6. windows 反弹shell_容器内反弹shell的51种姿势
  7. jq获取当前完整html,jquery怎样获取html的内容?
  8. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的问题解决
  9. java shareable_spring中@Resource和@Autowired理解详解_编程语言_IT虾米网
  10. linux卡在nfs挂载怎么办,51CTO博客-专业IT技术博客创作平台-技术成就梦想