python - 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
实际工作吗?谢谢!
解决方案
在这种情况下,您可以使用相对导入
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)
推荐阅读
- javascript - 求教:最大更新深度超过的原因
- postgresql - 错误 PostgreSQL:RETURN 必须在函数返回行中指定记录或行变量
- c# - 单独视图上的 ListView 未更新 - WPF
- react-native - 如何在 react-native 的 Touchable 中滑动 FlatList
- arduino - 树莓派 - Arduino 通讯
- javascript - 数组/对象排序
- html - 更改“搜索和过滤”插件默认文本
- flutter - 在所有小部件上方显示 Snackbar
- c++ - 遍历向量缓冲区时的 C++ 非法操作
- performance - 与基于 HTTP/2 的 JSON 相比,gRPC 是否有任何性能优势,而不是大小?