gpt4 book ai didi

python - 绝对导入不起作用,但相对导入起作用

转载 作者:太空狗 更新时间:2023-10-30 02:27:53 26 4
gpt4 key购买 nike

这是我的应用结构:

foodo/
setup.py
foodo/
__init__.py
foodo.py
models.py

foodo/foodo/foodo.pymodels.py 模块导入类:

from foodo.models import User

抛出 ImportError:

ImportError: No module named models

但是,如果我使用相对导入,它确实有效:

from models import User

如果我在导入之前放置一个 pdb 断点并继续,它也可以工作。

我应该能够同时使用绝对导入和相对导入吗?

最佳答案

您在 foodoo 包中有一个本地 模块foodoo。 Python 2 中的导入始终首先在当前包中查找名称,然后再查找顶级名称。

重命名 foodoo 包内的 foodoo 模块(消除首先找到本地 foodoo 的可能性)或使用:

from __future__ import absolute_import

在包中模块的顶部以启用 Python-3 样式导入,其中顶级模块是唯一搜索的模块,除非您在名称前加上 . 使名称相对。参见 PEP 328 -- Imports: Multi-Line and Absolute/Relative了解更多详情。

关于python - 绝对导入不起作用,但相对导入起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39068391/

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