关于Python包导入报错的问题总结

 更新时间:2023年02月17日 11:18:52   作者:大大毛丶aj  
这篇文章主要介绍了关于Python包导入报错的问题总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python包导入报错的问题

首先,一般来说,写一个小demo可能一个文件就够了,但是要是做一个小项目,可能需要拆分成很多零散的文件,放在不同的文件夹里面调用,这个就称之为模块(包)

Python的导包是一件令人头疼的事情,当文件多了之后,同样的导入方式可能在不同的场合遇到解释器抛出异常。

错误记录

1. ModuleNotFoundError: No module named ‘public’

ModuleNotFoundError:没有名为“public”的模块

模块间的引用:

错误的

正确的方式:

但是如果在里面运行代码,将会收到

2. ImportError: attempted relative import with no known parent package

ImportError:尝试在没有已知父包的情况下进行相对导入

(适合相邻文件的导入)

如果真想用里面的方法做测试,尝试

from public import print_date
or
import public

同样使用此也会抛出ImportError异常 from utils.public import print_date -> ModuleNotFoundError: No module named 'utils'

但是如果在包外调用包内的方法,又会报错

这里又需要把

from public import print_date

改回

from .public import print_date

其中 import .public 是不支持的,编辑器也会智能显示错误波浪线

导入之前捕获异常 ImportError

3. ImportError: attempted relative import beyond top-level package

ImportError:尝试相对导入超出顶级包 (包内导包外) - 需要在这个层级之上再建立一个文件夹来管理,把现有的文件夹当作子文件夹管理

······

目录结构(部分文件内容被删掉了):

关于 __init__.py 文件的作用,当在包外面使用 from xxx imprt * 这中方式导入时,会导入 __all__ = ['app'] 里面的,如果没有,就不能像下面一样使用

正常是

# from utils import *
from utils import app

def putfile():
    print('test putfile')

if __name__ == '__main__':
    app.main_run()

很明显,这样不行

4. ImportError: cannot import name ‘print_date’ from partially initialized module ‘utils.public’ (most likely due to a circular import) (D:\xxx\xxx\public.py)

ImportError:无法从部分初始化的模块“utils.public”导入名称“print_date”(很可能是由于循环导入)(D:\xxx\xxx\public.py)

这种情况把真正不依赖当前项目本身(公有变量等)的方法,再提取出来写到一个文件里面

总结

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

相关文章

  • Python:pycharm中虚拟环境venv的使用及说明

    Python:pycharm中虚拟环境venv的使用及说明

    文章介绍了虚拟环境的必要性和实践方法,虚拟环境可以帮助用户管理不同项目所需的Python版本和第三方模块,避免版本冲突和模块冲突,文章详细介绍了如何使用Python自带的`venv`模块创建和管理虚拟环境,并通过命令行和PyCharm两种方式构建虚拟环境
    2025-01-01
  • YOLOv5改进系列之增加小目标检测层

    YOLOv5改进系列之增加小目标检测层

    yolov5出来已经很长时间了,所以有关yolov5的一些详细介绍在这里就不一一介绍了,下面这篇文章主要给大家介绍了关于YOLOv5改进系列之增加小目标检测层的相关资料,需要的朋友可以参考下
    2022-09-09
  • Python实现测试磁盘性能的方法

    Python实现测试磁盘性能的方法

    这篇文章主要介绍了Python实现测试磁盘性能的方法,涉及Python对硬件的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 基于python 凸包问题的解决

    基于python 凸包问题的解决

    这篇文章主要介绍了基于python 凸包问题的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python 中os模块os.path.exists()的用法说明

    python 中os模块os.path.exists()的用法说明

    这篇文章主要介绍了python 中os模块os.path.exists()的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python调用服务接口的实例

    Python调用服务接口的实例

    今天小编就为大家分享一篇Python调用服务接口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Django Paginator分页器的使用示例

    Django Paginator分页器的使用示例

    django内置的分页器组件,能够帮我们实现对查询的数据进行自动分页,并返回分页对象,本文讲解分页器的用法
    2021-06-06
  • Django在视图中使用表单并和数据库进行数据交互的实现

    Django在视图中使用表单并和数据库进行数据交互的实现

    本文主要介绍了Django在视图中使用表单并和数据库进行数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Python实现决策树C4.5算法的示例

    Python实现决策树C4.5算法的示例

    本篇文章主要介绍了Python实现决策树C4.5算法的示例,详解的介绍了决策树C4.5算法的原理和实现代码,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • 手把手教你如何使python变为可执行文件

    手把手教你如何使python变为可执行文件

    对于exe可执行文件,相信大家都不陌生,下面这篇文章主要给大家介绍了关于如何使python变为可执行文件的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论