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

解决跨目录导入模块时ModuleNotFoundError: No module named 'dir2'问题

解决Python模块导入错误:ModuleNotFoundError: No module named 'dir2'

项目结构

- dir1/
    - __init__.py
    - helper.py
    - dir1.py
    
- dir2/
    - __init__.py
    - dir2Functions.py
    - dir2main.py

问题描述

在dir1/helper.py中执行from dir2.dir2Functions import functionxx时,触发错误:ModuleNotFoundError: No module named 'dir2'。

解决建议

1. 手动将项目根目录加入Python路径

在helper.py的开头添加以下代码,把dir1和dir2的父目录(项目根目录)添加到Python的搜索路径中:

import sys
import os

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

# 现在执行导入
from dir2.dir2Functions import functionxx

2. 设置PYTHONPATH环境变量

临时将项目根目录添加到环境变量中,终端执行对应命令后再运行脚本:

  • Windows终端:
    set PYTHONPATH=你的项目根目录绝对路径
    python dir1/helper.py
    
  • Linux/macOS终端:
    export PYTHONPATH=你的项目根目录绝对路径
    python dir1/helper.py
    

3. 使用相对导入(需以包形式运行)

将导入语句改为相对路径形式:

from ..dir2.dir2Functions import functionxx

注意:不能直接运行helper.py,必须从项目根目录以包模块的方式启动:

python -m dir1.helper

4. 将项目安装为可编辑包(长期开发推荐)

在项目根目录创建setup.py文件,内容如下:

from setuptools import setup, find_packages

setup(
    name="your-project-name",
    version="0.1",
    packages=find_packages()
)

然后在项目根目录执行命令,将项目安装为可编辑模式:

pip install -e .

安装完成后,在项目任何位置都能正常导入dir2模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:20:03