Python包混乱;来自包导入*

2024-09-21 03:23:01 发布

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

我正在开发具有以下结构的烧瓶应用程序:

src
├── config.yaml
├── requirements.txt
├── run.py
└── vortex
    ├── db.py
    ├── __init__.py
    ├── models
    │   ├── computer.py
    │   ├── image.py # Contains a class named Image
    │   └── __init__.py
    ├── templates
    │   └── ...
    └── views.py

modals/__init__.py

from .computer import Computer
from .image import Image

modals/computer.py

from vortex.models import *

i = Image(...)

但是不知何故,我无法访问modals/computer.py中的Image类,但是文档中说,如果我不使用__all__,那么__init__.py中定义的所有名称都应该导入。这是否会导致一个循环进口将是一个问题?你知道吗

我做错了什么,如何使用程序其他部分的模型中定义的所有类?你知道吗

编辑:

回溯:

  ...
  File "..../src/vortex/models/computer.py", line 35, in image
    return Image.find_by_id(self._fields.image)
NameError: global name 'Image' is not defined

Tags: frompyimageimportsrc应用程序定义烧瓶
1条回答
网友
1楼 · 发布于 2024-09-21 03:23:01

如果您在computer.py中,并且希望从同一个包中导入其他内容,只需使用相对导入:

from .image import Image

如果你想在一个地方导入一堆东西,用你的导入创建一个文件allModels.py,然后执行from .allModels import *。请参阅this question以了解如何/为什么相对地导入__init__.py比较困难。你知道吗

相关问题 更多 >

    热门问题