Python模块文件存在却无法导入,求助解决方法
Python模块导入错误的原因与解决办法
问题根源
VSCode无报错是因为它自动将你打开的项目根目录(包含app文件夹的目录)加入了Python模块搜索路径;但直接执行python app/app.py时,Python的搜索路径仅包含app目录和虚拟环境的site-packages,modules目录不在其中,所以import settings会触发ModuleNotFoundError。
解决方式
1. 相对导入(推荐)
修改foo.py的导入语句,利用同目录相对导入:
from . import settings
2. 绝对导入+手动添加路径
改用绝对导入:
from app.modules import settings
并在app.py开头添加代码,将项目根目录加入搜索路径:
import sys from pathlib import Path sys.path.append(str(Path(__file__).parent.parent))
3. 从根目录以模块方式运行
进入项目根目录后执行:
python -m app.app
这种运行方式会自动将根目录加入sys.path,Python可正确识别模块结构。
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

