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

Python跨目录导入模块报错:ModuleNotFoundError: No module named 'app'

解决Python模块导入报错:ModuleNotFoundError: No module named 'app'

先确认你的项目结构(要保证每个目录都有__init__.py):

app/
├── src/
│   ├── __init__.py
│   └── main.py
└── test/
    ├── __init__.py
    └── test.py

下面是几种可行的解决办法:

方法1:临时添加项目路径到Python搜索列表

在test.py的最开头加上这段代码,把项目根目录(也就是app文件夹所在的上级目录)加入Python的搜索路径:

import sys
from pathlib import Path

# 定位到项目根目录
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

# 现在可以正常导入main里的函数了
from app.src.main import 你的函数名

方法2:使用相对导入

如果把整个app当作一个包来运行,在test.py里用相对导入:

# 从上级目录的src模块导入main
from ..src.main import 你的函数名

注意:这种方式不能直接双击或用python test.py运行test.py,必须在app的父目录下执行命令:python -m app.test.test

方法3:设置PYTHONPATH环境变量(永久生效)

把项目根目录(app的上级目录)添加到系统的PYTHONPATH环境变量中:

  • Windows:打开系统环境变量设置,新增PYTHONPATH变量,值填项目根目录的路径
  • Linux/macOS:在终端执行echo 'export PYTHONPATH="你的项目根目录路径:$PYTHONPATH"' >> ~/.bashrc(用zsh的话换成~/.zshrc),然后重启终端

为什么加了__init__.py还是报错?

Python默认只会搜索当前运行脚本的所在目录和标准库路径。你直接运行test.py时,Python的搜索起点是app/test/,找不到app这个模块,必须把app的父目录加入搜索路径,或者用相对导入的正确方式才能识别到包结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:15:48