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

同级模块导入报错:ModuleNotFoundError: No module named 'mod2'

解决Python跨模块导入报错问题

问题场景

目录结构:

root
├─mod1
│  ├─script1.py
│  └─__init__.py
└─mod2
   ├─script2.py
   └─__init__.py

执行命令:

python mod1/script1.py

报错信息:

ModuleNotFoundError: No module named 'mod2'

已知信息:

  • Python 3.10.7 64位版本
  • 所有模块目录均包含__init__.py文件
  • Pylance可识别mod2,但运行时导入失败

解决方案

方法1:在脚本中手动添加root路径到模块搜索列表

在script1.py开头加入以下代码,将root目录加入Python的模块搜索路径:

import sys
import os

# 获取root目录的绝对路径
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_path)

# 正常导入mod2
import mod2

方法2:切换到root目录以模块方式运行脚本

先切换到root目录,再用-m参数以模块形式执行脚本:

cd /path/to/root
python -m mod1.script1

这种方式会自动将root目录纳入模块搜索路径,符合Python包导入的规范。

方法3:设置PYTHONPATH环境变量

通过环境变量将root目录添加到Python的模块搜索路径中:

  • Linux/macOS:
    export PYTHONPATH="/path/to/root:$PYTHONPATH"
    
  • Windows(CMD):
    set PYTHONPATH=C:\path\to\root;%PYTHONPATH%
    
  • Windows(PowerShell):
    $env:PYTHONPATH = "C:\path\to\root;$env:PYTHONPATH"
    

设置后直接执行python mod1/script1.py即可正常导入mod2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:00:27