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

同目录文件存在却触发ModuleNotFoundError的原因求助

模块导入失败的原因分析

以下是可能导致ModuleNotFoundError: no module named kestrel_main的几个常见原因:

  • 模块搜索路径未包含脚本所在目录
    Python导入模块时会遍历sys.path列表中的路径。当你用32位Python的绝对路径直接运行device_controller.py时,若脚本所在的device_controller目录未被加入sys.path,Python就无法找到同目录下的kestrel_main.py。这种情况可能是脚本内部有修改sys.path的代码,或者运行时的特殊机制导致默认路径被覆盖。

  • 当前工作目录与脚本所在目录不一致
    若你在device_controller文件夹的上级目录执行运行命令(比如C:\Python32\python.exe C:\xxx\device_controller\device_controller.py),虽正常情况下Python会自动把脚本所在目录加入搜索路径,但如果存在环境变量配置异常或脚本内路径修改,可能导致Python误在当前工作目录(上级目录)寻找模块,自然找不到kestrel_main。

  • 文件名与导入名的大小写不匹配
    Windows系统文件名不区分大小写,但Python的模块导入逻辑在某些场景下会严格区分大小写。如果实际文件名是Kestrel_Main.py这类大小写不同的名称,而你导入时写的是kestrel_main,就可能触发找不到模块的错误。

  • Python模块缓存干扰
    若之前有过导入失败的记录,Python生成的__pycache__缓存文件夹可能保留了错误的模块信息。删除device_controller目录下的__pycache__文件夹后重新运行,可能解决问题。

你可以在device_controller.py的开头添加以下代码,验证模块搜索路径是否包含目标目录:

import sys
print("当前模块搜索路径:", sys.path)

如果输出里没有device_controller目录的绝对路径,就可以确定是路径配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:10:25