运行node.py时出现ModuleNotFoundError: No module named 'src'的问题排查
ModuleNotFoundError: No module named 'src' 解决方案
嘿,我来帮你搞定这个模块找不到的问题~首先先确认下你的项目结构是这样的对吧:
myProject/ ├── src/ │ ├── __init__.py │ ├── connections.py │ ├── properties.py │ └── node.py ├── __init__.py └── test/ └── test.py
错误原因分析
你直接在src目录下执行python3 node.py的时候,Python会把当前所在的src目录加到模块搜索路径里,而不是myProject目录。这时候你写from src.properties import ...,Python会去当前搜索路径里找名为src的模块,但当前路径里只有properties、connections这些文件,根本没有src这个子模块,自然就报错啦。
几种解决办法
方法一:用模块方式运行(最推荐)
切换到myProject的父目录(就是包含myProject的那个文件夹),然后执行:
python3 -m myProject.src.node
如果你已经在myProject目录里面了,也可以简化成:
python3 -m src.node
这种方式会让Python把当前目录加入模块搜索路径,这样就能正确识别src作为一个包了。
方法二:改用相对导入
修改node.py里的导入语句为相对路径,用.表示当前包(也就是src):
from .properties import Property from .connections import Connection
修改后同样不能直接python3 node.py,还是要按方法一的命令来运行哦。
方法三:手动添加项目根目录到搜索路径
在node.py的最开头加上这段代码,把myProject目录手动加到Python的模块搜索路径里:
import sys import os # 获取当前文件的绝对路径,向上跳两级到myProject目录 project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(project_root)
这样之后,不管你在哪个目录运行python3 node.py,Python都能找到src这个包了。
内容的提问来源于stack exchange,提问作者Vineeth Maller
相关产品推荐
相关产品推荐

