You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python相对导入报错ImportError及绝对导入找不到模块问题求助

Python相对导入报错ImportError及绝对导入找不到模块问题求助

大家好,我最近在Python脚本的模块导入上卡壳了,折腾了好几种方法都没解决,想请各位帮忙看看问题出在哪!

先给大家说下我的项目目录结构:

项目根目录/
└── my_scripts/
    ├── 04-trial/
    │   └── L47_trial.py
    ├── starting_template.py
    └── resources/
        └── starting_template.py (后来尝试移动过去的版本)

我是从项目根目录执行的运行命令:

python my_scripts/04-trial/L47_trial.py

问题1:相对导入报错

在L47_trial.py里,我想导入上级目录my_scripts/下的starting_template.py里的load_img函数,写了这样的代码:

from ..starting_template import load_img

结果直接报错:

ImportError: attempted relative import with no known parent package

我原本理解的是,相对导入是从当前脚本所在的my_scripts/04-trial/目录往上找一级,就能定位到starting_template.py,但为什么会报错呢?难道Python不允许从当前脚本目录的上级目录导入模块吗?

问题2:绝对导入找不到模块

我想着换绝对导入试试,把代码改成:

from my_scripts.starting_template import load_img

结果又报了新的错误:

ModuleNotFoundError: No module named 'my_scripts'

后来我尝试把starting_template.py移到my_scripts/resources/目录下,VSCode自动帮我重构了导入语句:

from my_scripts.resources.starting_template import load_img

但还是报同样的找不到my_scripts模块的错误,这到底是哪里出问题了?

临时可行但不想用的方法

我试过把starting_template.py直接移到my_scripts/04-trial/目录下,然后把导入语句改成from starting_template import load_img,这样就能正常运行了,但我不想把这个文件放在脚本目录里,还是希望它留在原来的位置。

有没有大佬能帮我分析下问题,给个可行的解决办法呀?

备注:内容来源于stack exchange,提问作者Tms91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:48:00