Python 为什么导入在这里不起作用?
我正在建造numpy,想知道他们为什么在里面使用相对导入。为什么他们使用相对导入而不是直接导入,比如导入fft 我认为直接导入会起作用,所以将其克隆并将源代码更改为 ,但它不起作用。它将错误作为 ImportError:没有名为fft的模块 为什么即使fft模块在中也找不到 所以我模拟了一个类似的环境,看看为什么它不起作用。我创建了一个模块(mod1)和另一个模块(mod2)。我从mod1 _init__.py导入mod2,最后将包含模块mod1的文件夹添加到python路径。 然后编写了一个python脚本sample.py,其中包含Python 为什么导入在这里不起作用?,python,python-2.7,python-import,Python,Python 2.7,Python Import,我正在建造numpy,想知道他们为什么在里面使用相对导入。为什么他们使用相对导入而不是直接导入,比如导入fft 我认为直接导入会起作用,所以将其克隆并将源代码更改为 ,但它不起作用。它将错误作为 ImportError:没有名为fft的模块 为什么即使fft模块在中也找不到 所以我模拟了一个类似的环境,看看为什么它不起作用。我创建了一个模块(mod1)和另一个模块(mod2)。我从mod1 _init__.py导入mod2,最后将包含模块mod1的文件夹添加到python路径。 然后编写了一个p
import mod1
而且一切都运转良好,无需相对进口
但为什么它在numpy内部不起作用
注意:我在虚拟环境中使用numpy。那会引起麻烦吗
调试更新:
import numpy.fft
成功了。我查了一下“\uuuu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。但是为什么需要“numpy”,因为它已经在numpy模块中了???更重要的是,由于_uname __;被设置为numpy,它应该能够计算出其中的fft模块。。。我用来模拟的例子是同一个场景,尽管mod2在mod1中,但我只使用了import mod2,我不必执行import mod1.mod2。这一行是您的问题:
from __future__ import absolute_import
当此future语句处于活动状态时,不能使用隐式相对导入。必须使用完全绝对导入(
import numpy.fft
)或显式相对导入(from.import fft
)。有关此问题的进一步讨论,请参阅。这一行是您的问题:
from __future__ import absolute_import
当此future语句处于活动状态时,不能使用隐式相对导入。必须使用完全绝对导入(
import numpy.fft
)或显式相对导入(from.import fft
)。请参阅,以获取对此的进一步讨论。touch\uuu init\uuuuuuuuuuuuuuuuuuuuuuuupy
?fft模块具有init.py(),或者在导入之前可能是自未来导入绝对导入。
。不,它不起作用。@我没想到您会将顶部的“自未来导入绝对导入”行作为weir行为的原因。我还以为你要我加上..它。。所以我很困惑。。抱歉…如果您的评论与Kevin的回答类似,那么您是对的。touch\uuuu init\uuuuuuuuuuuuuuuuuupy
?fft模块有init.py(),或者在导入之前可能是来自未来导入绝对导入
。不,它不起作用。@you我没想到您指向的是“来自未来导入绝对导入”顶部的线作为堰行为的原因。我还以为你要我加上..它。。所以我很困惑。。对不起,如果你的评论和凯文的回答相似,那么你是对的。。