gpt4 book ai didi

python - 当我尝试 're-import' 模块时,为什么会遇到 ImportError?

转载 作者:行者123 更新时间:2023-11-30 23:58:12 29 4
gpt4 key购买 nike

我编写了一系列 python 模块,这些模块保存在同一目录中,但我遇到了 ImportError 问题。

我使用的三个模块是draw_menu.pyerrors.pyfile_operations.py

errors.py 中,我需要一个错误代码列表,我正在使用 file_operations.py 中定义的自定义方法来打开包含代码的文件,因此我在 she-bang 下方(类定义上方)使用 import file_operations

file_operations.py中,我使用error.py中定义的方法来打印错误消息(例如找不到文件等)。因此,我在这里以相同的方式导入错误

上面的工作正常,但是当我使用 draw_menu.py 时,它使用一个文件来定义 ascii 菜单中的选项(因此我使用 import file_operations >) 遇到导入错误。

导入错误:无法导入名称 file_operations

我知道这是因为“导入树”如果您喜欢如下流程:

draw_menu <- 文件操作 <- 错误 <- 文件操作

每个模块都可以单独使用,这一点很重要,为什么这是一个问题?如何在不从 errors.py 中删除 import file_operations 的情况下克服这个问题?

谢谢

汤姆

最佳答案

循环导入可能会导致 Python 出现问题(如您所料)。可能值得检查一下是否:

A)errors.py 和 file_operation.py 应该是单个模块(如果它们都严重依赖彼此,它们是否需要分开?)

B) 您可以延迟一个或另一个模块中的导入。函数中的 import 语句只有在调用该函数后才会运行,虽然在模块开头导入通常是一种很好的做法,但在 Python 中则没有这种要求。在这种情况下,它可以避免导入期间的循环引用。

关于python - 当我尝试 're-import' 模块时,为什么会遇到 ImportError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235684/

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