关于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 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包导入报错的总结相关推荐
- 导入自己模块包导入报错:ModuleNotFoundError: No module named ‘xxx‘解决方法 晓物智联
导入自己模块包导入报错:ModuleNotFoundError: No module named 'xxx'解决方法 文章来源于:http://www.52phm.cn/blog/detail/28 ...
- VS CODE Python 包路径报错解决方案could not be resolved
问题:程序可以正常运行,但是提示错误,找不到包的路径. 解决办法: 1.点击左下脚进入设置,搜索栏输入:python.Analysis:Extra Paths 2.这时默认选择的是[用户],要选择[远 ...
- 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 ...
- 【转】python包导入细节
[转]python包导入细节 包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以 ...
- R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】
R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...
- 数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
2019独角兽企业重金招聘Python工程师标准>>> 数据导入报错:Got a packet bigger than'max_allowed_packet'bytes的问题 2个解 ...
- python安装报错类型_解决Python安装cryptography报错问题
解决Python安装cryptography报错问题 错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wst ...
- 包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘
目录 一.问题描述 二.解决方法 一.问题描述 在 Python 代码中引入包:from community import best_partition 时报错: ImportError: canno ...
- 关于com.lowagie.text包的报错问题
关于com.lowagie.text包的报错问题 接手了一个maven项目,导入之后发现一直报错 提示我找不到这个包,在右侧的maven projects一栏中找了一下,也确实没有com.lowagi ...
- python操作sqlite报错:sqlite3.OperationalError: unrecognized token: “630008.OF“
python操作sqlite报错:sqlite3.OperationalError: unrecognized token: "630008.OF" 分析:Ana:column的名 ...
最新文章
- 求助:Event ID:10021日志错误的解决方法
- Ubuntu18.04安装Intel® oneAPI Toolkit
- velodyne显示点云中grid的单位_led显示屏怎么选择点间距
- 大学物理光学思维导图_思维导图走进新华百货现代物流
- 操作系统安装必备基础知识----浅谈电脑系统里的那些UEFI, BIOS, MBR, GPT。
- ES9的新特性:异步遍历Async iteration
- Redis集群搭建~Redis-x64-3.2.100版本
- concat() “+“ 和 append() 的区别
- Java 按字节获得字符串(中文)长度
- PHP 每天的总结(1)
- 网秦任命两位新董事 成立投资委员会
- python ftp timeout_Python ftp client 处理含有中文的文件名详解
- 上传附件点击事件_支持高拍仪扫描凭证附件的出纳记账软件
- 联合主键用hibernate注解映射方式主要有三种:
- paip.提高用户体验----增添开始菜单类似360小助手按钮总结 (补充c925)
- APICloud平台使用融云模块实现音视频通话实践经验总结分享
- data uploads php权限,【网站安全】取消data、uploads等有执行.php的权限
- Unity3D基础语言,引擎实战入门教程
- Springboot:整合DubboProvider的配置以及Comsumer的配置
- 学完Java可以做什么兼职?去哪里找兼职?
热门文章
- 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台
- Microsoft Visual Studio 2013产品激活密钥
- 阿里用回mysql_回mysql事务
- SPSS(一)进行单因素方差分析及多重比较检验(图文教程)
- 什么软件可以清除流氓软件
- mysql获取某天的开始时间和结束时间
- word提示“Word上次启动失败,安全模式可以帮助您解决问题”的解决办法
- 信捷PLC跟西门子700IE通信
- ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
- 计算机专业今日份例句