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

Python项目导入报错:ModuleNotFoundError: No module named 'src' 求解

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

问题原因

你在项目根目录执行python3 src/train.py时,Python仅将当前工作目录(root_dir)加入模块搜索路径,但cycle_gan.py里的from src.cyclegan.utils import *试图以src作为顶层模块导入,而此时src并非Python识别的顶层模块,导致导入失败。

解决方案

方案1:使用相对导入(推荐,符合项目结构规范)

修改cyclegan/models/cycle_gan.py中的导入语句为相对路径:

from ..utils import *

..代表当前文件所在目录的上一级(即cyclegan目录),这样就能直接导入同目录下的utils.py。

修改后,在根目录执行原命令即可正常运行:

python3 src/train.py

方案2:将项目根目录加入Python搜索路径

方式A:通过环境变量设置

在项目根目录执行以下命令:

export PYTHONPATH=$PWD
python3 src/train.py

PYTHONPATH会告诉Python将根目录加入模块搜索路径,此时src会被识别为顶层模块,cycle_gan.py中的原导入语句无需修改。

方式B:在代码中手动添加路径

在src/train.py的最顶部添加以下代码:

import sys
from pathlib import Path
# 将项目根目录加入搜索路径
sys.path.append(str(Path(__file__).parent.parent))

这段代码会自动获取项目根目录并添加到Python的模块搜索路径中,同样无需修改cycle_gan.py的导入语句。

方案3:以模块方式运行脚本

在项目根目录执行以下命令:

python3 -m src.train

这种方式会将根目录作为模块搜索路径,src会被当作一个顶层模块,此时cycle_gan.py中的原导入语句可以正常工作。如果train.py中的导入出现问题,可修改为相对导入:

from .cyclegan.models.cycle_gan import CycleGAN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:54:22