报错关键词
-
相对导入(relative import):报错模块(模块,区别于脚本不直接作为主程序运行,是一系列对象定义的集合)存在使用相对导入的包内模块调用关系,也即其中存在以
.
(平级目录)或..
(父级目录)起头的import
语句。例如,from .<subpackage|module> import <subpackage|module|func>
表示从报错模块平级目录的包或模块中调用嵌套的包或模块或函数。
-
包(package):利用文件夹组织的模块的集合,一般通过在各层级文件夹中放置
__init__.py
指示当前文件夹为一个包。
-
无法识别的包文件(no known parent package):当前 Python 解释器运行路径(
python path/to/main.py
中 python
命令的执行位置)无法查找到当前执行脚本引用的包含相对导入的模块的最小包结构。
常见问题汇总及排查
1. 在脚本中使用相对导入
问题:相对导入是存在于包结构中,并在模块中使用的概念,而由 Python 解释器执行的程序是脚本文件,不应该存在相对导入。
解决方案:请使用绝对导入导入同级模块或包。若本地包文件存在于其它目录层级,考虑重新安排目录结构,或使用 PYTHONPATH
环境变量将本地包路径手动添加到 Python 解释器可识别包路径。详见文末扩展内容。
详细解决方案
1. 【看这段基本够了】使用相对导入的时机
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)