gpt4 book ai didi

python - Python 中的相对导入

转载 作者:IT老高 更新时间:2023-10-28 22:12:40 25 4
gpt4 key购买 nike

大家好——我正在使用 Python 中的相对导入来拉扯我的头发。我已经在 SO 和其他论坛上阅读了 30 次文档和大量帖子 - 似乎仍然不起作用。

我的目录结构目前是这样的

src/
__init__.py
main.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py

我希望 expander.py 和 language_id.py 能够访问功能模块。我运行 python main.py,它可以通过 from components.expander import * 和 components.language_id import * 很好地访问模块。

但是,expander 和 language_id 里面的代码来访问功能模块:

from ..utilities.functions import *

我收到此错误:

ValueError: Attempted relative import beyond toplevel package

我已经检查了很多次,它似乎遵循文档。有人知道这里出了什么问题吗?

最佳答案

没关系,我解决了:

src/
main.py
mod/
__init__.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py

main.py 然后将子包称为:

from mod.components.expander import *
from mod.utilities.functions import *

expander.py 和 language_id.py 可以通过以下方式访问 functions.py:

from ..utilities.functions import *

但有趣的是,我在 expander.py 使用的 components 目录中有一个文本文件。但是,在运行时它无法找到该文件,即使它位于同一目录中。我将文本文件移动到与 main.py 相同的目录并且它工作。似乎违反直觉。

关于python - Python 中的相对导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175534/

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