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

作者:啊啊啊啊懒 时间:2021-03-19 13:59:30 

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

 

前情提要

概念:

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

好处:

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

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

分类:

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

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

原因及解决办法

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

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

例1:

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


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

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

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

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

即from module1 import cal

例2:

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

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

这时,bin中的代码是:

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


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

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。(改完你会发现以下现象,不用管,这是软件问题,保证导入路径没错就可以执行)

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

import红线但是能运行

解决方法

包右键-Mark Directory as-Sources Root 

来源:https://blog.csdn.net/weixin_44017891/article/details/104750752

标签:python,import,模块,红线
0
投稿

猜你喜欢

  • 详解Go 依赖管理 go mod tidy

    2024-05-02 16:25:17
  • 简单的抓取淘宝图片的Python爬虫

    2022-01-19 14:42:31
  • 基于layer.js实现收货地址弹框选择然后返回相应的地址信息

    2024-05-08 09:32:22
  • Python NumPy教程之数据类型对象详解

    2022-03-29 09:05:19
  • Mysql下自动删除指定时间以前的记录的操作方法

    2024-01-18 06:33:15
  • Tensorflow实现多GPU并行方式

    2021-03-26 19:43:31
  • 详解用Python实现自动化监控远程服务器

    2021-02-14 15:50:57
  • python 机器学习之支持向量机非线性回归SVR模型

    2022-06-17 20:23:55
  • 如何在一段文字里点一下就可以在里面插入一段文字?

    2024-04-19 09:55:31
  • Linux下为不同版本python安装第三方库

    2023-11-12 05:04:35
  • 一篇文章带你了解python标准库--math模块

    2021-02-22 07:35:12
  • 利用Pytorch实现获取特征图的方法详解

    2023-09-11 16:16:02
  • python 按照固定长度分割字符串的方法小结

    2021-05-28 06:05:05
  • Python+tkinter使用40行代码实现计算器功能

    2023-05-07 17:27:16
  • Python+Opencv实战之人脸追踪详解

    2022-09-22 16:03:38
  • Python Flask请求扩展与中间件相关知识总结

    2022-03-10 17:03:06
  • 网页iframe元素应用浅析

    2009-04-11 18:11:00
  • Pytorch中关于F.normalize计算理解

    2021-10-10 12:33:34
  • 鼠标经过超链时的提示图层源码

    2010-03-17 20:51:00
  • js取得html iframe中的元素和变量值

    2024-06-07 15:26:17
  • asp之家 网络编程 m.aspxhome.com