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

Python从父目录其他目录导入模块遇ModuleNotFoundError的解决求助

问题描述

项目结构如下:

project/
    public_app/
        __init__.py
        dir/
            __init__.py
            config.py
            subdir/
                __init__.py
                functions.py
                utils.py
    my_app/
        main.py

我希望在my_app/main.py中导入public_app/dir/subdir/functions.py中的函数,已实现的方案是在main.py中添加以下代码:

# main.py
import sys
import os
path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))
sys.path.append(path)

from public_app.dir.subdir.functions import *

该方案可行,但导入public_app/dir/subdir/utils.py时出现问题——因为utils.py内部包含相对导入语句:

# utils.py
from dir.config import *

若在main.py中执行:

# main.py
from public_app.dir.subdir.utils import *

会触发ModuleNotFoundError: No module named 'dir'错误。

请问有什么解决办法?需说明的是,我不想修改public_app目录(该目录来自公共仓库,会频繁更新),同时希望保持my_app目录独立以保证整洁易维护。


补充说明:我偶然间已找到解决办法,详见下方回答。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:15:56