python之ImportError:模块引入异常问题

 更新时间:2023年06月15日 09:42:00   作者:Imobs  
这篇文章主要介绍了python之ImportError:模块引入异常问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

摘要

为什么要写这篇文章?

我们在使用 pycharm 编程经常会遇到 ImportError:模块引入异常的情况;

原因:

模块文件不在运行的路径上,即PyCharm IDE支持文件跳转,但是当文件执行时,找不到模块。

就会抛出 ImportError;

解决方法

Step1:使用 sys.path.append 引入源路径

如果是在 Terminal 执行,通过 sys.path.append 添加源路径

在模块文件顶部,引入源目录,源路径下的所有模块文件都可以被不加前缀直接import

import os
import sys
BASE_PATH = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
if BASE_PATH not in sys.path:
    sys.path.append(BASE_PATH)
# print(BASE_PATH)  # 打印源路径

Step2:Pycharm IDE - Sources Root

如果使用 Pycharm IDE ,模块包下有多层目录,直接执行,可能就会抛出引入路径错误

(1)在pycharm中设置source路径

File–>setting–>project:项目名–>project structure

将放package的文件夹设置为source,这样import的模块类等,就是通过这些source文件夹作为根路径来查找,也就是在这些source文件夹中查找import的东西。

(2)清除缓存并重启

(3)设置源目录(注意设置的是哪个目录,不能选择项目根目录)

package 右键 -> Mark Directory as -> Sources Root

Step 3:unresolved reference

导入第三方模块时,比如:

from flask import Flask

此时的Flask 下方是有红色波浪线(如下图)的,我这里确定已经安装完毕,且 ctrl + 左键也无法跳转到声明定义的源码,虽然运行是不会报错的,但是在使用的是不会提示相关的关键方法

这个问题困扰了我很久,查了很多资料,最终找到了解决方法;

(1)在pycharm的 settings >> Editor >> File Types

(2)选择 Text 并将 File name patterns 列表(识别为文本的文件名/扩展名列表),删除 __init__.py 文件名

(3)删除所有的文件名,发现问题已经解决!

总结

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

相关文章

  • 一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    这篇文章主要介绍了一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python切片工具pillow用法示例

    Python切片工具pillow用法示例

    这篇文章主要介绍了Python切片工具pillow用法,结合实例形式分析了Python中pillow的简单安装与使用操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python动态导入模块和反射机制详解

    Python动态导入模块和反射机制详解

    这篇文章主要介绍了Python动态导入模块和反射机制详解,需要的朋友可以参考下
    2020-02-02
  • 利用python实现全屏爱心雨向喜欢的人表白

    利用python实现全屏爱心雨向喜欢的人表白

    马上520了,教大家用Python做一个下爱心雨的特效,这篇文章主要给大家介绍了关于利用python实现全屏爱心雨向喜欢的人表白的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python +Selenium解决图片验证码登录或注册问题(推荐)

    Python +Selenium解决图片验证码登录或注册问题(推荐)

    这篇文章主要介绍了Python Selenium解决图片验证码登录或注册问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程

    哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程

    这篇文章主要介绍了哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Python内置模块logging用法实例分析

    Python内置模块logging用法实例分析

    这篇文章主要介绍了Python内置模块logging用法,结合实例形式较为详细的分析了Python基于logging模块的日志配置、输出等常用操作技巧,需要的朋友可以参考下
    2018-02-02
  • python pandas loc 布尔索引示例说明

    python pandas loc 布尔索引示例说明

    loc跟iloc的区别,首先loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数,详情见下面
    2022-03-03
  • Python调整PDF页面尺寸大小的两种方法

    Python调整PDF页面尺寸大小的两种方法

    利用Python语言的高效性和灵活性,再结合Spire.PDF for Python 库的强大功能,我们可以通过Python代码轻松实现对PDF页面的批量调整,在这篇文章中,我们将介绍两种调整PDF页面大小的方法,感兴趣的朋友可以参考下
    2024-05-05
  • Flask-蓝图 blueprint详情

    Flask-蓝图 blueprint详情

    这篇文章主要介绍了 Flask-蓝图 blueprint的相关资料,Blueprint 是一个存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求,更多相关资料需要的小伙伴可以参考下面文章
    2021-11-11

最新评论