2023-10-22 23:40:12
Python导入问题解决方案总结
1. 模块导入原理模块是.py文件,包是包含.py文件的文件夹(Python 3无需__init__.py,但显式声明更清晰)。
Python通过sys.path列表查找模块,顺序为:
当前执行脚本所在目录。
Python内置标准库路径。
第三方模块路径(如site-packages)。
若未找到模块,抛出ModuleNotFoundError。
在module_0.py中导入package_1.module_2成功,但在module_2.py中直接导入module_3失败,因为sys.path仅包含package_0/,不包含package_0/package_1/。
? 明确路径,避免歧义。
? 移动目录时需修改所有导入语句。
?? 不能用于顶层执行文件(如python module_0.py中from .package_1 import module_2会报错)。
?? 不能跨顶级包导入(如从module_2导蚂冲睁入module_4需通过绝对路径判族)。
? 灵活,适应复杂目录结构。
? 需手动管理路径,可能引发命名冲突。
通过理解导入机制和合理选择导入方式,可有效避免ModuleNotFoundError问题。