Python跨目录导入src模块报ModuleNotFoundError: No module named 'src'问题
报错原因
Python导入模块时会从sys.path变量存储的路径列表中查找目标模块,你当前的运行环境没有将src目录的上层路径加入Python的模块搜索路径,因此触发了ModuleNotFoundError报错。
你当前执行脚本的工作目录是/home/project/test/,Python默认只会把当前执行脚本的所在目录(即test目录)加入sys.path,而src目录位于/home/project/路径下,不在搜索路径列表中,自然无法识别到src模块。
解决方法
- 方法1:执行脚本时临时指定Python搜索路径
保持当前工作目录不变,执行如下命令即可正常运行:PYTHONPATH=/home/project python3 test.py - 方法2:在test.py开头主动添加项目根目录到搜索路径
在test.py的最开头、所有导入语句之前加入如下代码:
添加完成后再运行import sys import os # 自动获取项目根目录(即/home/project/)并加入搜索路径 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))test.py即可正常导入src.numeric。 - 方法3:切换到项目根目录执行脚本
执行命令时切换到/home/project/路径下运行test脚本:
此时当前工作目录为项目根目录,会被自动加入cd /home/project python3 test/test.pysys.path,可以直接识别到src目录。
内容的提问来源于stack exchange,提问作者simple114141
相关产品推荐
相关产品推荐

