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

关于Python包导入报错的总结相关推荐

  1. 导入自己模块包导入报错:ModuleNotFoundError: No module named ‘xxx‘解决方法 晓物智联

    导入自己模块包导入报错:ModuleNotFoundError: No module named 'xxx'解决方法 文章来源于:http://www.52phm.cn/blog/detail/28 ...

  2. VS CODE Python 包路径报错解决方案could not be resolved

    问题:程序可以正常运行,但是提示错误,找不到包的路径. 解决办法: 1.点击左下脚进入设置,搜索栏输入:python.Analysis:Extra Paths 2.这时默认选择的是[用户],要选择[远 ...

  3. win10安装python包imgaug报错Command python setup.py egg_info failed with error code 1 in C:\Users\admi

    提示Command "python setup.py egg_info" failed with error code 1 in C:\Users\admi 发现是安装shapel ...

  4. 【转】python包导入细节

    [转]python包导入细节 包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以 ...

  5. R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】

    R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...

  6. 数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题

    2019独角兽企业重金招聘Python工程师标准>>> 数据导入报错:Got a packet bigger than'max_allowed_packet'bytes的问题 2个解 ...

  7. python安装报错类型_解决Python安装cryptography报错问题

    解决Python安装cryptography报错问题 错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wst ...

  8. 包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘

    目录 一.问题描述 二.解决方法 一.问题描述 在 Python 代码中引入包:from community import best_partition 时报错: ImportError: canno ...

  9. 关于com.lowagie.text包的报错问题

    关于com.lowagie.text包的报错问题 接手了一个maven项目,导入之后发现一直报错 提示我找不到这个包,在右侧的maven projects一栏中找了一下,也确实没有com.lowagi ...

  10. python操作sqlite报错:sqlite3.OperationalError: unrecognized token: “630008.OF“

    python操作sqlite报错:sqlite3.OperationalError: unrecognized token: "630008.OF" 分析:Ana:column的名 ...

最新文章

  1. 求助:Event ID:10021日志错误的解决方法
  2. Ubuntu18.04安装Intel® oneAPI Toolkit
  3. velodyne显示点云中grid的单位_led显示屏怎么选择点间距
  4. 大学物理光学思维导图_思维导图走进新华百货现代物流
  5. 操作系统安装必备基础知识----浅谈电脑系统里的那些UEFI, BIOS, MBR, GPT。
  6. ES9的新特性:异步遍历Async iteration
  7. Redis集群搭建~Redis-x64-3.2.100版本
  8. concat() “+“ 和 append() 的区别
  9. Java 按字节获得字符串(中文)长度
  10. PHP 每天的总结(1)
  11. 网秦任命两位新董事 成立投资委员会
  12. python ftp timeout_Python ftp client 处理含有中文的文件名详解
  13. 上传附件点击事件_支持高拍仪扫描凭证附件的出纳记账软件
  14. 联合主键用hibernate注解映射方式主要有三种:
  15. paip.提高用户体验----增添开始菜单类似360小助手按钮总结 (补充c925)
  16. APICloud平台使用融云模块实现音视频通话实践经验总结分享
  17. data uploads php权限,【网站安全】取消data、uploads等有执行.php的权限
  18. Unity3D基础语言,引擎实战入门教程
  19. Springboot:整合DubboProvider的配置以及Comsumer的配置
  20. 学完Java可以做什么兼职?去哪里找兼职?

热门文章

  1. 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台
  2. Microsoft Visual Studio 2013产品激活密钥
  3. 阿里用回mysql_回mysql事务
  4. SPSS(一)进行单因素方差分析及多重比较检验(图文教程)
  5. 什么软件可以清除流氓软件
  6. mysql获取某天的开始时间和结束时间
  7. word提示“Word上次启动失败,安全模式可以帮助您解决问题”的解决办法
  8. 信捷PLC跟西门子700IE通信
  9. ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
  10. 计算机专业今日份例句