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

运行mainApi.py遇ModuleNotFoundError,该如何解决?

解决Python运行脚本时的ModuleNotFoundError问题

问题原因

当你用python mainApi.py直接运行脚本时,Python只会将当前脚本所在的目录添加到sys.path(模块搜索路径)中;而用python -m api.mainApi以模块方式运行时,Python会将项目根目录添加到sys.path里。你的printer和aws_classes是位于项目根目录下的包,直接运行脚本时它们不在搜索路径中,所以触发ModuleNotFoundError。

修复方案

方案1:手动将项目根目录加入sys.path

在mainApi.py的最顶部添加以下代码,强制把项目根目录加入模块搜索路径:

import sys
import os
# 获取当前脚本的父目录的父目录(即项目根目录)
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

这样无论用哪种方式运行脚本,Python都能找到printer和aws_classes包。

方案2:使用相对导入(需配合模块方式运行)

如果mainApi.py位于api目录下,可将导入语句改为相对导入形式:

from ..printer.printerWindows import printerWindows
from ..aws_classes.aws_photo import aws_photo

注意:这种方式下,你不能再用python mainApi.py直接运行脚本,必须保持python -m api.mainApi的运行方式,因为相对导入仅适用于模块结构中的脚本。

方案3:设置PYTHONPATH环境变量

在运行脚本前,将项目根目录设置为PYTHONPATH环境变量,让Python自动搜索该路径下的包:

  • Windows命令行:
set PYTHONPATH=你的项目根目录绝对路径
python mainApi.py
  • Linux/macOS终端:
export PYTHONPATH=你的项目根目录绝对路径
python mainApi.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:49:52