首页 > 解决方案 > ModuleNotFoundError:导入模块时没有名为“x”的模块

问题描述

在 Python 3 中,我尝试导入模块(它导入另一个模块)并且我得到ModuleNotFoundError。我的主模块如下所示:

from next_folder import adding
adding.add(1)

然后在文件夹中next folder我有另外两个模块。第一个是adding.py

import substracting

def add(a):
    b = 1
    d = substracting.substract(20)
    c = a+b+d
    print(c)

第二个(在同一文件夹中)是substracting.py

def substract(c):
    d = c-1
    print(d)
    return d

运行main.py时出现以下错误:

  File "C:\Users\LENOVO\PycharmProjects\pythonProject\main.py", line 1, in <module>
    from next_folder import adding
  File "C:\Users\LENOVO\PycharmProjects\pythonProject\next_folder\adding.py", line 1, in <module>
    import substracting
ModuleNotFoundError: No module named 'substracting'

你能帮我修改这段代码,以便main.py实际工作吗?谢谢!

标签: pythonpython-3.xmodulenotfounderror

解决方案


在这种情况下,您可以使用相对导入

from . import substracting

在 python 3 中,仅以 from 的形式支持相对导入。导入子模块

这也会起作用:

import next_folder.substracting as sub

def add(a):
    b = 1
    d = sub.substract(20)
    c = a+b+d
    print(c)

推荐阅读