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

Python模块导入报错:如何无需前置点号解决ModuleNotFoundError?

问题:无需相对导入前缀(点号)实现模块正确导入

项目目录结构

project
│
└── app/
    │
    ├── main.py
    ├── __init__.py
    │
    ├── common/
    │   ├── __init__.py
    │   └── do_common.py
    │
    └── util/
        ├── __init__.py
        └── do_util.py

现有代码内容

main.py 初始代码

import sys
from pathlib import Path

from common.do_common import foo

sys.path.append(str(Path(__file__).resolve().parent))

foo()

do_common.py 初始代码

def foo():
    print("foo")

执行命令与初始报错

激活虚拟环境后执行命令:

python -m app.main

出现报错:ModuleNotFoundError: No module named 'common'
将导入语句改为from .common.do_common import foo(在common前添加点号)后可正常输出foo。

新增导入后的报错

当在do_common.py中导入do_util.py时,修改后的代码如下:

from util.do_util import bar


def foo():
    print("foo")
    bar()

出现报错:ModuleNotFoundError: No module named 'util';改为from .util.do_util import bar后,又出现报错:ModuleNotFoundError: No module named 'app.common.util'。

需求

如何修改才能无需在模块名前添加点号即可正确导入?当前环境为Windows 10下的Python 3.12。

内容的提问来源于stack exchange,提问作者Mr. Kenneth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:57:04