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

执行python -m命令报ModuleNotFoundError: No module named x的原因与解决

问题原因及解决办法

错误原因

  1. 运行命令错误:使用python -m参数时,后面应跟模块名而非带.py后缀的文件名。你输入的python -m test.main.py会被Python解析为寻找名为test.main.py的模块,这显然不存在,同时也会导致模块路径识别异常。
  2. 导入路径错误:当通过-m以模块方式运行test.main时,Python的模块搜索路径(sys.path)会包含项目根目录(Project)。此时main.py属于test包,你直接写from x import c, k和import y,Python会在项目根目录下寻找顶级模块x和y,但这两个文件实际在test包内,所以触发ModuleNotFoundError。

解决步骤

步骤1:修正运行命令

将命令改为:

python -m test.main

这样Python会正确识别test是一个包,main是包内的模块。

步骤2:修改main.py的导入语句

有两种可行的修改方式:

  • 方式一:使用相对导入(适用于包内模块间的引用)
    修改main.py的代码为:

    from .x import c, k
    from . import y
    

    这里的.代表当前模块所在的包(即test),告诉Python在同一个包内寻找x和y模块。

  • 方式二:使用绝对导入(基于包名的完整路径)
    修改main.py的代码为:

    from test.x import c, k
    import test.y
    

    这种方式明确指定从test包下导入x和y模块,Python会从sys.path中的项目根目录找到test包,进而定位到对应的模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:15:35