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)删除所有的文件名,发现问题已经解决!

总结

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

相关文章

  • Python程序打包exe,单文件和多文件方式

    Python程序打包exe,单文件和多文件方式

    这篇文章主要介绍了Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • python处理excel绘制雷达图

    python处理excel绘制雷达图

    这篇文章主要为大家介绍了python处理excel绘制雷达图的相关方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python实现exe小工具的详细代码

    Python实现exe小工具的详细代码

    Python exe工具是一种将Python代码打包成可执行文件的工具,它可以将Python程序转换为独立的可执行文件,使得在没有安装Python解释器的环境中也能够运行Python程序,本文给大家介绍了Python实现exe小工具的详细代码,需要的朋友可以参考下
    2024-04-04
  • 使用国内镜像源创建离线PyPI镜像的完整方案

    使用国内镜像源创建离线PyPI镜像的完整方案

    根据知识库信息,清华镜像已明确会阻断大量下载行为的请求,为避免此问题,我将提供一个安全使用国内镜像源的完整方案,确保能够一次性准备指定Python版本的所有包,然后导出到内网环境,需要的朋友可以参考下
    2025-09-09
  • python 监控某个进程内存的情况问题

    python 监控某个进程内存的情况问题

    这篇文章主要介绍了python 监控某个进程内存的情况问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python3 伪装浏览器的方法示例

    Python3 伪装浏览器的方法示例

    本篇文章主要介绍了Python3 伪装浏览器的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示

    使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示

    这篇文章主要介绍了使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python中的None与 NULL(即空字符)的区别详解

    Python中的None与 NULL(即空字符)的区别详解

    这篇文章主要介绍了Python中的None与 NULL(即空字符)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python编写微信公众号首图思路详解

    python编写微信公众号首图思路详解

    这篇文章主要介绍了python编写微信公众号首图的思路,根据微信公众号首图要求,可以上传一个不超过5M的图片,且图片尺寸要是2.35:1的尺寸,具体实现思路及代码感兴趣的朋友跟随小编一起看看吧
    2019-12-12
  • python TCP Socket的粘包和分包的处理详解

    python TCP Socket的粘包和分包的处理详解

    这篇文章主要介绍了python TCP Socket的粘包和分包的处理详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论