gpt4 book ai didi

python - 不明白这个 ModuleNotFoundError 的原因

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:39 25 4
gpt4 key购买 nike

我的文件结构如下:

└── project    
├── __init__.py
├── main.py
└── package1
├── __init__.py
├── module1
└── subpackage
├── __init__.py
└── module2.py

模块 2 包含一个名为 A 的函数,模块 1 使用代码导入模块 2:

from subpackage import module2

这在直接运行 module1 时工作正常,但是当我随后尝试从 main.py 导入 module1 时,出现错误。 main.py中import语句的代码是

from package1 import module1

这给出了错误

  Traceback (most recent call last):
File "C:\...\project\main.py", line 1, in <module>
from package1 import module1
File "C:\...\project\package1\module1.py", line 1, in <module>
from subpackage import module2
ModuleNotFoundError: No module named 'subpackage'

我不太明白这里发生了什么,我尝试使用 os.chdir() 将当前工作目录更改为模块 1 中的 package2,但这没有效果。在研究问题后,我发现唯一可能与我的问题相关的是绝对导入与相对导入,但更改导入语句不会影响错误。

最佳答案

在您的 module1.py 文件中,您需要为导入的文件提供完整路径(绝对路径)。因此,如果您想从 main.py 文件运行代码,您需要将 module1.py 中的导入更改为:

from package2.subpackage import module2

import package2.subpackage.module2

关于python - 不明白这个 ModuleNotFoundError 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54159370/

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