Python中从根目录向子目录导入calc.py失败的解决方案求助
Python模块导入问题解决方法
你的目录结构如下:
├───coreyTutorials ├───test | ├───test_calc.py │ ├───__init__.py ├───calc.py └───__init__.py
你尝试的两种导入方式失败原因分别是:
import calc失败:Python找不到calc模块,因为coreyTutorials目录不在它的模块搜索路径里。from .. import calc失败:直接运行test_calc.py时,它被当成独立脚本,不属于任何包结构,所以无法识别相对导入的父级。
下面是几种可行的解决办法:
方法1:手动添加模块路径
在test_calc.py最开头加入以下代码,把coreyTutorials目录添加到Python的搜索路径中,之后就能直接导入calc:
import sys from pathlib import Path # 获取coreyTutorials目录的绝对路径并加入搜索路径 sys.path.append(str(Path(__file__).parent.parent)) import calc
方法2:以包的形式运行脚本
打开终端,切换到coreyTutorials的上级目录,执行以下命令运行测试脚本:
python -m coreyTutorials.test.test_calc
这时test_calc.py会被当作包的一部分,就可以用相对导入了:
from .. import calc
方法3:使用绝对导入
同样在以包形式运行的前提下,也可以用绝对导入方式:
from coreyTutorials import calc
内容的提问来源于stack exchange,提问作者Gaur
相关产品推荐
相关产品推荐

