Python3.8+运行测试脚本报错No module named 'src'如何解决
问题原因
出现ModuleNotFoundError: No module named 'src'的核心原因是Python的模块搜索路径sys.path中没有包含src文件夹所在的项目根目录,导致Python无法定位到src包。
解决方案
方案1:修正路径拼接逻辑(任意位置执行都生效)
你可以先添加调试代码确认路径拼接是否正确,调整后即可正常导入:
import sys from pathlib import Path # 拼接项目根目录路径(test.py所在目录的上两级,就是和src、test同级的根目录) root_path = str(Path(__file__).resolve().parent.parent) # 打印确认路径是否正确,输出的路径需要是包含src文件夹的根目录 print(root_path) sys.path.insert(0, root_path) from src.code.library import add print(add("as", 2))
如果输出的路径不是项目根目录,根据你实际的目录层级调整parent的数量即可。同时确认src、code等文件夹的名称没有大小写拼写错误,Python模块导入大小写敏感。
方案2:调整执行命令(无需修改代码)
不需要改动test.py的内容,切换到项目根目录(和src、test文件夹同级的目录)下,以模块方式运行脚本即可:
python -m test.test
以-m参数运行模块时,Python会自动把当前执行命令的目录加到sys.path中,直接就能识别到src包。
补充说明
Python 3.3及以上版本确实支持命名空间包,不需要添加__init__.py即可识别文件夹作为包,你的报错和这个特性无关,不需要额外添加该文件。
内容的提问来源于stack exchange,提问作者zigzagzoom
相关产品推荐
相关产品推荐

