【发布时间】:2021-10-17 00:43:02
【问题描述】:
我创建了一个名为“pkg”的包,它看起来像这样:
pkg/
__init__.py
mod1.py
mod2.py
__init__.py 为空。
mod1.py 只包含一个函数,看起来像这样。
# mod1.py
def my_sqrt(x):
s = 5 # initialize at 5
while abs(x - s**2) > 0.00001:
s = (s+x/s)/2
return s
mod2.py 包含一个使用来自mod1.py 的函数my_sqrt 的函数,如下所示。
# mod2.py
def fourth_root(x):
return my_sqrt(my_sqrt(x))
现在当我跑步时
from pkg import *
my_sqrt(9)
我根据需要得到3.000000001396984 的输出,但如果我随后运行
fourth_root(81)
我收到一个错误ModuleNotFoundError: No module named 'mod1'。
即使我在mod2.py 中添加以下行,
from mod1 import my_sqrt
它仍然不起作用并抛出以下错误:NameError: name 'my_sqrt' is not defined。
由于某些逻辑结构,我想在单独的模块中定义函数my_sqrt 和fourth_root。我该怎么做并且不会出错。我很难理解如何安排我的包,以便处理模块之间的这些相互依赖关系。
【问题讨论】:
标签: python import module package modulenotfounderror