关于Python包导入报错的总结

article/2025/8/25 17:30:49

首先,一般来说,写一个小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 appdef 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)
    这种情况把真正不依赖当前项目本身(公有变量等)的方法,再提取出来写到一个文件里面

http://chatgpt.dhexx.cn/article/dmVLUbTg.shtml

相关文章

python导入自定义包时无法导入自己定义的包

python导入自定义包时 显示找不到包,如下图 处理方法如下: 点击文件夹选择工作目录 点击后就可以正常导包啦

python 导入自定义的包

有时候我们需要在程序中导入额外的python包,这个时候就需要用到这里的知识.这里介绍两种导包方式. 一. 手动导包 其工作的原理就是将搜索路径加入python的sys.path 数组中. python工作的时候会自动搜索sys.path 中所有的目录,那么我们 可以自定义一个目录,然后在目录中建立一…

VSCode python 导入包之后显示下划黄线

在 VSCode 中编写 python 脚本,在 import 包的时候显示下划黄线,如下所示: 通过 pip show 命令查询可知 serial 和 tqdm 已经成功安装,路经如下所示: 则在设置里面搜索 python.analysis.extraPaths,手动输…

python导入包如果找不到

说明系统中可能没有前缀,可以在sys.path中加入各类查找路径,这样编译的时候会进行这些前缀的检索,如果是当前目录的,则不用加,直接Import那个包即可。

python如何导入包

包(模块)的命名规范: 为什么需要遵循命名规范?如果包的命名不遵循命名规范 ,那么在导入包时即使方法是正确的,也无法有效的导入该包 1.命名有字母、数字和下划线三个组成 2.项目名、包名、模块名、pytho…

【查看Python导入包的地址】

查看Python中import的包的绝对地址: 【效果】: 【代码】: #将package_name换成需要查找的包 import package_name print(package_name.__file__)

python怎么导入包-python如何导入包

本文主要讲解python导入包的几种方法 一、模块的导入方式 模块就是.py类型的Python文件 导入时不需要.py后缀,直接导入文件名即可 利用import直接导入: 语法:import module_name 使用方式:module_name.class_name或者module.func_name 利用import导入模块并设置一个…

Python导包的几种方法,自定义包的生成以及导入详解

Python是一门灵活的语言,也可以说Python是一门胶水语言,顾名思义,就是其可以导入各类的包,python的包可以说是所有语言中最多的。当然导入包大部分是为了更快捷,更方便,效率更高。对于刚入门的python爱好者来说最初接触的应该是import直接导入包的方式,例如 import time…

Python开发之Python导包的几种方法,自定义包的生成以及导入详解

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。 下面介绍python的几种…

Openstack云平台脚本部署之Ceph存储集群配置(十四)

目录 一、简介 二、部署脚本 三、参考文档 四、源码 五、系列文章 一、简介 Openstack的后端存储对接Ceph分布式统一存储,将Glance镜像、Nova虚拟机及快照、Cinder-Volume的存储在Ceph统一存储上。Ceph在Openstack社区的带动下发展迅速,已经成为最受…

ceph分布式存储搭建

目录 一、环境搭建 1.基础环境 2.centos1安装软件 3.创建集群 4.修改配置文件 5.安装软件 二、构建集群 1.初始化monitor 2.同步管理信息 3.安装mgr 4.安装rgw 5.创建mds服务 三、安装OSD 1.centos1、centos2、centos3、三个虚拟机各加一个磁盘 2.热刷新磁盘并格…

Ceph存储搭建及在k8s中的使用

一、基础环境准备 主机IP主机名部署服务备注192.168.0.91admin-nodeceph、ceph-deploy、monmon节点又称为master节点192.168.0.92ceph01cephosd192.168.0.93ceph02cephosd Ceph版本 10.2.11 Ceph-deploy版本 7.6.1810 内核版本 3.10.0-957.el7.x86_64 每个节点关闭防火墙和s…

ceph存储应用--owncloud

目录 框架​ 节点规划 部署环境准备 ceph集群部署 在master1上创建集群 创建mon监控组件 监控节点master1初始化 创建mgr管理组件 创建osd磁盘 添加其他节点到ceph集群中 对象存储搭建 创建对象存储网关 创建owncloud应用 ceph对象存储对接owncloud 安装s3工具 框…

ceph存放mysql备份_Kubernetes持久化Ceph存储

一、依然简介 Kubernetes使用Persistent Volume和Persistent Volume Claim两种API资源来管理存储。 PersistentVolume(简称PV):由管理员设置的存储,它是集群的一部分。就像节点(Node)是集群中的资源一样,PV也是集群中的资源。它包含存储类型,…

关于 Ceph 存储集群配置的一些笔记

写在前面 Ceph 考试整理笔记,老师总结基础上,略有补充博文内容涉及: ceph 集群的配置简单介绍永久和零时修改集群配置文件集群 Mon 的配置集群身份验证的配置集群多网络的配置 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有…

ceph存储快速部署

前言:ceph的基本介绍 Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。 Ceph特点: 1.高性能: a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并…

Ceph存储

集中式存储 所谓集中式系统就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中 部署在这个中心节点上,系统所有的功能均由其集中处理。也就是说,集中式系统中,每个终端或客户端仅仅负责 数据的录入和 输出,而数据的存储与…

ceph(分布式存储)

文章目录 一、ceph的组件和功能1.简介2.层次结构和功能 二、ceph的数据读写流程三、使用ceph-deploy安装一个最少三个节点的ceph集群(推荐3个或以上的磁盘作为专用osd)1.基础配置配置主机名给三台主机写入hosts解析配置node1到所有节点root用户免密钥互信配置时间同步在node1上…

【ceph】学习笔记(三)三大存储模式简介

Ceph本身是一个统一存储,支持块、对象和文件等所有存储形态 在RADOS集群之上,Ceph构建了块存储、文件存储和对象存储等存储形态。由于RADOS集群本身是以对象为粒度进行数据存储的,因此上述三种存储形态,在最终存储数据的时候都划…

Ceph分布式存储

目录 一、ceph简介 1、什么是ceph 2、ceph支持的三种存储方式 1)块存储RBD 2)对象存储RGW 3)文件系统存储ceph-fs 3、ceph的主要特点 4、ceph组件作用 OSD:(Object Storage Device) Monitors MD…