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

目录
  • import模块时有错误红线的解决
    • 前情提要
    • 原因及解决办法
  • 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

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

(0)

相关推荐

  • 解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题

    有时候导入本地模块或者py文件时,下方会出现红色的波浪线,但不影响程序的正常运行,但是在查看源函数文件时,会出现问题 问题如下: 解决方案: 1. 进入设置,找到Console下的Python Console,勾选选项"Add source roots to PYTHONPAT" 2. 在当前项目程序目录右键单击,然后"Mark Directory as"为"Sources Root".之后当前程序所在目录颜色会变化,表示已经完成标记. 3. 之

  • Python导入模块时遇到的错误分析

    当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题.本文详细解释了这个问题. 1. 模块未安装或者路径不对 ImportError: No mudule named myModule 有两种可能,一是该模块没有安装,一般可以用 pip install %module_name% 来解决.注意有时候模块安装包名并不等于要导入的模块名.这种情况下可以通过pip search | list命令来尝试找到正确的包. 另一种情况

  • 解决python有时候import不了当前的包问题

    问题描述: ImportError: No module named 'XXXX' 解决方式一: 将XXXX包放在python的site-package文件夹下 解决方式二: 可能是XXXX包没有新建init.py 解决方式三: init.py需要声明包含XXXX包的函数 解决方式四: sys.path.append(Ur 'XXXX's path) 但是,有些时候python解释器可能脑抽....明明上述操作都有,但是就是找不到. ImportError: No module named 'X

  • 导致python中import错误的原因是什么

    Python程序可以调用一组基本的函数(即内建函数),比如print().input()和len()等函数.Python本身也内置一组模块(即标准库).每个模块都是一个Python程序,且包含了一组相关的函数,可以嵌入到你的程序之中,比如,math模块包含了数学运算相关的函数,random模块包含随机数相关的函数,等等. 一.import语句 在开始使用一个模块中的函数之前,必须用import语句导入该模块. 语法: import module1[, module2[,... moduleN]]

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

    目录 import模块时有错误红线的解决 前情提要 原因及解决办法 import红线但是能运行 解决方法 import模块时有错误红线的解决 前情提要 概念: 在一个文件中代码越长越不容易维护,为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在python中,一个py文件就称之为一个模块(Module) 好处: 1.最大的好处是提高了代码的可维护性 2.编写代码不必从零开始.当一个模块编写完毕,就可以在其他地

  • Python import模块的缓存问题解决方案

    在使用django开发的平台中,支持用户自定义函数,但是每次用户进行修改编辑后,该模块内容已更改,然后重新导入该模块,但是Python 会认为"我已经导入了该模块,不需要再次读取该文件",所以更改将无效. 因此,每次更改文件的内容时,都必须退出并重新启动Django. 使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦 要解决这个问题,有以下几种方式: 最简单.最有效的方法:重新启动 Django.但是,这也有缺点,特别是丢失了 django名称空间

  • Python 完美解决 Import “模块“ could not be resolved ...的问题

    vscode 中 python 提示警告错误,但是还是能跑起来代码: Import "playwright.sync_api" could not be resolved Pylance reportMissingImports 原因可能有两个: 1.未下载此包,打开命令行,输入 $ pip list,可以看到下载过的所有包,如果未下载,则下载后重启 vscode 就可以了. 2.本机有多个 python 的编译环境,比如使用 pyenv 管理多个版本,而在 vscode 里使用的那个

  • 解决Python import .pyd 可能遇到路径的问题

    Python import .pyd文件时会搜索sys.path列表中的路径 运行 import xxx.pyd 1. 'ImportError: No module named xxx' 可能是xxx.pyd所在路径不在sys.path中. 解决方法: import之前用sys.path.append()方法加入xxx.pyd所在路径,确定当前路径推荐用os.path.realpath('.'). 2. 'ImportError: DLL load failed: 找不到指定的程序' 可能是x

  • Python中一行和多行import模块问题

    Python 不建议用一行 import 所有模块,而是推荐用多行 import 来导入模块.更多的是出于操作便利性的原因,与代码本身无关: 更易于阅读 import fred 比 import barney, betty, wilma, fred, bambam, pebbles 更容易找. 更易于搜索 能通过关键词马上 import fred 搜寻到位置,而 import barney, fred 不行. 更易于编辑: 插入和移除更快捷: 每行只声明一个模块,因此你不需要费力去找模块在哪:

  • 多个python文件调用logging模块报错误

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调用,而每个文件设置了对应的logging方式不同,可能会产生的令人困惑的现象. 下面以自己在开发的时候遇到的问题作为叙述的背景: 有三个python模块A.B.C.主模块A会import B和C模块,主模块有对应的logging方式, A使用logging的模块的方式为: import loggin

  • Python pip安装模块提示错误解决方案

    问题如下 python pip安装模块提示错误failed to create process 原因: 报这个错误的原因,是因为python的目录名称或位置发生改动. 解决办法: 1.找到修改python所在的目录,打开scripts目录,如下图找到修改python所在的目录,打开scripts目录,找到pip3-script.py文件.如下图: 2.找到pip-script.py文件,并打开,在第一行替换以下代码,路径为你修改的python.exe的路径: 新: #!F:\cxm\venv\S

  • 详解Python import方法引入模块的实例

    详解Python import方法引入模块的实例 在Python用import或者from-import或者from-import-as-来导入相应的模块,作用和使用方法与C语言的include头文件类似.其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度. python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块,这点和PHP非常相似,但是它们的具体细节还不是很一样.因为php是在引入的时候指明引入文件的具体路径,而python中不能够写文件路径进

  • python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 import 模块名 form 模块名 import * from 模块名 import 模块名 as 新名称 3. 导入模块本质 import 模块名 ===> 将模块中所有的数据赋值给模块名,调用时需要模块名.方法名() from 模块名 import 方法名 ==>将该方法单独放到当前文件运行一遍

  • Python import自定义模块方法

    python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src |-- mod1.py |-- mod

随机推荐