Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么导入在这里不起作用?_Python_Python 2.7_Python Import - Fatal编程技术网

Python 为什么导入在这里不起作用?

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

我正在建造numpy,想知道他们为什么在里面使用相对导入。为什么他们使用相对导入而不是直接导入,比如导入fft

我认为直接导入会起作用,所以将其克隆并将源代码更改为

,但它不起作用。它将错误作为

ImportError:没有名为fft的模块

为什么即使fft模块在中也找不到

所以我模拟了一个类似的环境,看看为什么它不起作用。我创建了一个模块(mod1)和另一个模块(mod2)。我从mod1 _init__.py导入mod2,最后将包含模块mod1的文件夹添加到python路径。 然后编写了一个python脚本sample.py,其中包含

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我没想到您指向的是“来自未来导入绝对导入”顶部的线作为堰行为的原因。我还以为你要我加上..它。。所以我很困惑。。对不起,如果你的评论和凯文的回答相似,那么你是对的。。