gpt4 book ai didi

python - 如何调试 Python 导入失败

转载 作者:太空狗 更新时间:2023-10-29 20:28:43 25 4
gpt4 key购买 nike

我有一个目录结构:

network/__init__.py
network/model.py
network/transformer/__init__.py
network/transformer/t_model.py

两个 __init__.py 文件都有适当的

__all__ = [
"model", # or "t_model" in the case of transformer
"view",
]

在 t_model.py 中,我有

from .. import model

但是它说:

ImportError: cannot import name model

如果我尝试

from ..model import Node

它说:

ImportError: cannot import name Node

这些都是非常令人困惑的错误。


编辑:即使是绝对导入也会失败:

import network as N
print(dir(N), N.__all__)
import network.model as M

['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'transformer'] ['model', 'view']
Traceback (most recent call last):..........
AttributeError: 'module' object has no attribute 'model'

编辑:这是一个循环导入

最佳答案

这对我有用。你能运行/导入 model.py 吗?如果它有语法错误,您将无法导入它。 (一般我建议不要做相对导入,它们的使用是有限的)。

您的绝对导入非常困惑。在此包中进行绝对导入的方法是:

from network model import Node

这很好用。

我在顶层(网络之上)有一个 program.py:

从网络.transformer 导入 t_model

t_model.py 看起来像这样:

from .. import model
print "Model", model

from ..model import Node
print "Node", Node

from network.model import Node
print "Absolute", Node

输出是:

Model <module 'network.model' from '/tmp/network/model.pyc'>
Node <class 'network.model.Node'>
Absolute <class 'network.model.Node'>

如您所见,它工作正常,您的错误出在其他地方。

关于python - 如何调试 Python 导入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com