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

Python脚本运行时提示Module not found:跨目录导入模块问题

问题原因及解决办法

问题根源

  • 运行Test.py时,Python默认只会把当前脚本所在的目录(即project/Scripts/Tests/)加入模块搜索路径,而dummy.py在上级的Scripts/目录里,不在这个搜索范围内,所以会提示找不到模块。
  • 编辑器能识别是因为编辑器会自动把整个项目根目录或Scripts/目录标记为源码根目录,提前加入了搜索路径,但Python运行脚本时不会自动做这个操作。

解决办法

方法1:使用相对导入

修改Test.py的代码为:

from ..dummy import basic

注意事项:

  • 需要在Scripts目录下创建一个空的__init__.py文件(让Python把Scripts识别为包)。
  • 不能直接运行Test.py,要从project目录执行命令:python -m Scripts.Tests.Test。

方法2:手动添加搜索路径

在Test.py开头加入以下代码,把Scripts目录加入Python的搜索路径:

import sys
from pathlib import Path

# 获取Scripts目录的路径
scripts_dir = Path(__file__).parent.parent
sys.path.append(str(scripts_dir))

from dummy import basic

这样直接运行Test.py就能正常导入了。

方法3:设置环境变量

运行Test.py前,把Scripts目录的路径添加到PYTHONPATH环境变量中:

  • Windows命令行:
    set PYTHONPATH=你的project路径\Scripts
    python Test.py
    
  • Linux/macOS终端:
    export PYTHONPATH=/你的project路径/Scripts
    python Test.py
    

内容的提问来源于stack exchange,提问作者Optional_Karl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:49:55