如何修复ModuleNotFoundError:没有名为“parts”的模块

2024-04-26 22:36:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件结构:

mytests
   models
      parts
        __init__.py
        ...
      __init__.py
      model.py
   test.py

这是__init__.py的内容:

from parts import *
from models import My_transformer

if __name__=='__main__':
    # ...

这是model.py的内容:

from parts.attention import Pre_Net

class My_transformer(tf.keras.Model):
    def __init__(self,config,logger=None):
        super(My_transformer, self).__init__()
        ...

当我运行test.py时,我得到以下错误:

/mytests/models/__init__.py in <module>()
----> 1 from parts import *
ModuleNotFoundError: No module named 'parts'

在这一行:

from models import My_transformer

如何修复此错误?我在Jupyter笔记本上运行test.py

更新

我有__init__.pyparts里面,它看起来如下:

from attention import *

if __name__=='__main__':
    print('ok')

Tags: namefrompytestimport内容modelif
1条回答
网友
1楼 · 发布于 2024-04-26 22:36:20

您应该具有如下结构和导入:

mytests
   models
      parts
        __init__.py
        attention.py
      __init__.py
      model.py
   test.py

models/parts/__init__.py内容:

from .attention import Pre_Net
# or from .attention import *

models/parts/attention.py内容:

class Pre_Net:
    pass

models/__init__.py内容:

from .model import *

models/model.py内容:

from models.parts import Pre_Net

class My_transformer(tf.keras.Model):
    def __init__(self,config,logger=None):
        super(My_transformer, self).__init__()
        ...

test.py内容:

from models import My_transformer

相关问题 更多 >