Python导入模块报错:No module named 'modules'问题求助
Python模块导入失败问题解决
文件结构
src └── classes ├── modules └── image generator.py # 执行导入操作的脚本
报错信息
from modules.processing import StableDiffusionProcessingTxt2Img, process_images ModuleNotFoundError: No module named 'modules'
已尝试操作
已在classes和modules文件夹中添加__init__.py,确认modules/processing.py文件存在,但问题仍未解决。
解决方案
方法1:使用相对导入
因为image generator.py和modules是同级目录,可通过相对导入指定模块位置:
from .modules.processing import StableDiffusionProcessingTxt2Img, process_images
注意:如果直接运行该脚本(如python "image generator.py"),可能触发ValueError: attempted relative import in non-package,此时需要以包的形式运行脚本。
方法2:手动添加路径到系统路径
在脚本开头添加代码,将classes目录加入Python的模块搜索路径:
import sys from pathlib import Path # 获取当前脚本所在的classes目录 classes_path = Path(__file__).parent sys.path.append(str(classes_path)) # 执行导入 from modules.processing import StableDiffusionProcessingTxt2Img, process_images
方法3:从src目录以包形式运行
切换工作目录到src,然后用模块方式运行脚本:
cd src python -m classes."image generator"
(建议将脚本文件名改为image_generator.py以避免空格带来的麻烦,对应运行命令改为python -m classes.image_generator)
这样Python会正确识别classes作为包,modules作为子包,原导入语句即可正常工作。
内容的提问来源于stack exchange,提问作者jaal kamza
相关产品推荐
相关产品推荐

