通过制作简易的Demo,让其更加深入的了解如何使用 1. 问题所示 发现python的同级目录相互调用会出Bug 1 2 3 4 5 6 7 E:\software\anaconda3\envs\py3.10\python.exe F:\python_project\test\Father\child\file3.py Traceback (mo
| 通过制作简易的Demo,让其更加深入的了解如何使用 
 1. 问题所示发现python的同级目录相互调用会出Bug 
 截图如下: 
 2. 原理分析出现 ImportError: attempted relative import with no known parent package 错误的原因是 Python 无法识别当前脚本的父包,因此相对导入失败 要解决这个问题并理解其背后的原理,需要了解以下几点: 原理分析 相对导入的限制: 相对导入(例如,from …module import something)只能在包(包含 __init__.py 文件的目录)中使用 脚本直接运行的问题: 如果直接运行一个脚本(例如,通过 python file3.py),该脚本的包上下文不会被识别 3. 解决方法先给一个Demo 其文件结构如下: 
 file1如下: 
 file3如下: 
 这将执行出错 通用的解决方式有如下: 3.1 添加父目录在file3中修改代码为如下: 
 执行的结果如下: 
 3.2 相对路径修改file3如下: 
 但是 执行结果如下: 
 需要使用命令行的方式来执行: 
 注意差异 如果file3的文件如下: 
 还是可以直接运行的: 
 3.3 添加init截图如下: 
 对应file3的文件如下: 
 截图如下: 
 也可使用命令行的方式来执行: 
 __init__.py 文件在 Python 3.3 及其之后的版本中不是必须的,但它有助于将目录标识为一个包 | 
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27