python import模块时有错误红线的原因

 更新时间:2022年02月11日 09:39:16   作者:啊啊啊啊懒  
这篇文章主要介绍了python import模块时有错误红线的原因及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

import模块时有错误红线的解决

 

前情提要

概念:

在一个文件中代码越长越不容易维护,为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在python中,一个py文件就称之为一个模块(Module)

好处:

1、最大的好处是提高了代码的可维护性

2、编写代码不必从零开始。当一个模块编写完毕,就可以在其他地方调用

分类:

1、python’标准库 2、第三方模块 3、应用程序自定义

使用软件为pycharm。在python项目执行的时候,会出现导入模块错误(代码上表示出红色曲线)

原因及解决办法

1、常见的为本模块没有安装,所以要去网上搜索该模块的安装方法。(很多可以通过pip解决)

2、若该模块为自己编写,则需看他是否跟执行文件是否在一个文件夹下。

例1:

bin.py是执行文件,想在bin.py中导入cal.py运行它中的run()函数。


在这里插入图片描述

如果只写import会报错,因为两个文件存在于两个文件夹中

在这里插入图片描述

所以这种情况在导入模块的时候要写成from 文件夹名 import 文件名

即from module1 import cal

例2:

bin.py是执行文件,想在bin.py中导入main.py,在main中再导入cal.py运行cal.py的run()函数。简单点说就是在1中调用2在从2中调用3

在这里插入图片描述

这时,bin中的代码是:

注:这样导入的是正确的,但是有的时候pycharm也会给它标红线如下图。直接执行就好不用管(除非你导入本身有问题)


在这里插入图片描述

from module1 import main
main.run()

main中的代码是:

import cal
def run():
    print(cal.add(3,7))
    print('这里是main')

cal中的代码是:

def add(a,b):
    print('这里是cal,%d+%d=%d'%(a,b,a+b))

注意:

这样执行是有错误的:

Traceback (most recent call last):
  File "E:/python_workspace/test/bin.py", line 1, in <module>
    from module1 import main
  File "E:\python_workspace\test\module1\main.py", line 1, in <module>
    import cal
ModuleNotFoundError: No module named 'cal'

这时,我们要格外注意,在main中导入cal模块时写的是import cal。这样是错误的。

原因及解决:

我们的执行文件是bin那么在执行的的时候所有的导入路径都是基于执行文件的。所以尽管bin和main在同一文件夹下,依然要写成from module import cal。(改完你会发现以下现象,不用管,这是软件问题,保证导入路径没错就可以执行)

在这里插入图片描述

import红线但是能运行

解决方法

包右键-Mark Directory as-Sources Root 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python读取yaml文件的详细教程

    Python读取yaml文件的详细教程

    这篇文章主要给大家介绍了关于Python读取yaml文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • Python实现常见的4种坐标互相转换

    Python实现常见的4种坐标互相转换

    主流被使用的地理坐标系并不统一,常用的有WGS84、GCJ02(火星坐标系)、BD09(百度坐标系)以及百度地图中保存矢量信息的web墨卡托,本文利用Python编写相关类以实现4种坐标系统之间的互相转换,希望对大家有所帮助
    2023-02-02
  • python config文件的读写操作示例

    python config文件的读写操作示例

    这篇文章主要介绍了python config文件的读写操作,结合简单示例形式分析了Python针对config文件的设置、读取、写入相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • 使用python框架Scrapy爬取数据的操作步骤

    使用python框架Scrapy爬取数据的操作步骤

    Scrapy是一个基于Python的强大的开源网络爬虫框架,用于从网站上抓取信息,它提供了广泛的功能,使得爬取和分析数据变得相对容易,本文小编将给给大家介绍一下如何使用python框架Scrapy爬取数据,需要的朋友可以参考下
    2023-10-10
  • Python使用while循环花式打印乘法表

    Python使用while循环花式打印乘法表

    今天小编就为大家分享一篇关于Python使用while循环花式打印乘法表,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 对Python3 * 和 ** 运算符详解

    对Python3 * 和 ** 运算符详解

    今天小编就为大家分享一篇对Python3 * 和 ** 运算符详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python中生成随机整数的三种方法

    Python中生成随机整数的三种方法

    本文介绍了如何在Python中生成一到一百随机整数的多种方法,包括random库,NumPy库和random.sample函数这三种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • python下调用pytesseract识别某网站验证码的实现方法

    python下调用pytesseract识别某网站验证码的实现方法

    下面小编就为大家带来一篇python下调用pytesseract识别某网站验证码的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Python中canmatrix解析dbc文件应用常见示例

    Python中canmatrix解析dbc文件应用常见示例

    DBC是一种用于描述CAN网络协议的文件格式,Python作为一种流行的编程语言,也提供了解析DBC文件的相关类库,这篇文章主要给大家介绍了关于Python中canmatrix解析dbc文件的相关资料,需要的朋友可以参考下
    2024-08-08
  • Python异步之迭代器如何使用详解

    Python异步之迭代器如何使用详解

    这篇文章主要为大家介绍了Python异步之迭代器如何使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论