Python项目跨文件夹导入模块报错:No module named 'backend'
解决导入报错:No module named 'backend'
问题原因
你的python1.py位于backend/folder_1目录下,直接运行该脚本时,Python默认会把当前脚本所在的backend/folder_1目录加入模块搜索路径(sys.path),但backend是上层目录,不在搜索路径范围内,因此无法找到该模块。
解决方案
方案1:使用相对导入
由于python1.py和utils.py同属backend包,可通过相对路径导入:
from ..utils import *
注意:这种方式不能直接运行python1.py,需要从Project Folder目录以模块方式执行:
python -m backend.folder_1.python1
方案2:手动添加项目根目录到搜索路径
在python1.py开头添加代码,将Project Folder目录加入sys.path:
import sys import os # 获取Project Folder的绝对路径 project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(project_root) from backend.utils import *
修改后无论从哪个目录运行脚本,都能正常找到backend模块。
方案3:切换工作目录后运行
先进入Project Folder目录,再执行脚本:
cd /path/to/Project Folder python backend/folder_1/python1.py
此时Python会自动将当前工作目录(Project Folder)加入sys.path,即可正常导入backend.utils。
内容的提问来源于stack exchange,提问作者marsprogrammer
相关产品推荐
相关产品推荐

