脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python import模块时有错误红线的原因

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

2022-09-21 11:16啊啊啊啊懒 Python

这篇文章主要介绍了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()函数。


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

延伸 · 阅读

精彩推荐
  • PythonPython异常对代码运行性能的影响实例解析

    Python异常对代码运行性能的影响实例解析

    这篇文章主要介绍了Python异常对代码运行性能的影响实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    AngryBill6462021-01-13
  • Pythonpython中assert用法实例分析

    python中assert用法实例分析

    这篇文章主要介绍了python中assert用法,实例分析了assert的功能及相关使用技巧,非常具有实用价值,需要的朋友可以参考下...

    露露2782020-06-19
  • Python关于Python中Inf与Nan的判断问题详解

    关于Python中Inf与Nan的判断问题详解

    这篇文章主要介绍了关于Python中Inf与Nan的判断问题,文中介绍的很详细,对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。...

    Huoty23702020-09-20
  • Pythonpython 制作一个gui界面的翻译工具

    python 制作一个gui界面的翻译工具

    图形界面总是比命令行的程序更加好用,也更容易给新手使用,今天就来介绍如何使用python制作一个图形界面的翻译工具...

    懷淰メ12532021-11-02
  • Pythonpython接口测试环境搭建过程详解

    python接口测试环境搭建过程详解

    这篇文章主要介绍了python接口测试环境搭建过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    拉努斯石7382020-06-30
  • PythonPython+Pygame制作"长沙版"大富翁

    Python+Pygame制作"长沙版"大富翁

    说到童年爱玩的电脑游戏,最国民的莫过于金山打字通,接着是扫雷、红心大战,而红极一时的单机游戏当属《大富翁》。本文将通过Python的Pygame模块制作...

    顾木子吖4522022-09-13
  • Python如何利用Boost.Python实现Python C/C++混合编程详解

    如何利用Boost.Python实现Python C/C++混合编程详解

    这篇文章主要给大家介绍了关于如何利用Boost.Python实现Python C/C++混合编程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定...

    机器学习的小学生9602021-04-17
  • Python详解Python的collections模块中的deque双端队列结构

    详解Python的collections模块中的deque双端队列结构

    deque结构可以看作是内置的list结构的加强版,且比队列提供了更强大的方法,下面就通过几个小例子来详解Python的collections模块中的deque双端队列结构:...

    lucifercn3812020-09-01